Как вы пишете в заголовке столбца для файла CSV? - PullRequest
0 голосов
/ 11 ноября 2018
def write_vt(d, filename):
    f = open(filename, 'w')

Я должен открыть новый файл в режиме записи и затем написать в столбце заголовка, а затем использовать цикл for для добавления строк данных в файл. Но я просто не могу понять, как это сделать ...

Исходное имя файла votes.csv.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Есть много способов сделать это, в зависимости от ваших данных и того, какие инструменты вы хотите использовать:

a) Запись CSV строка за строкой со списками и заголовком

import csv


data_list = [
    ["Russia", "Moscow", "Russian"],
    ["US", "Washington, D.C.", "English"],
    ["Colombia", "Bogotá", "Spanish"]
]
header = ["col1", "col2", "col3"]

def write_csv_from_lists(data, header, filename):
    with open(filename, "w") as csv_file:
        csv_writer = csv.writer(csv_file)
        csv_writer.writerow(header) # write header
        for row in data:
            csv_writer.writerow(row) # write each row

write_csv_from_lists(data_list, header, "file1.csv")

file1.csv

col1,col2,col3
Russia,Moscow,Russian
US,"Washington, D.C.",English
Colombia,Bogotá,Spanish

б) Запись CSV строка за строкой с диктовкой и заголовком

import csv


data_dict = [
    {"col1": "Russia", "col2": "Moscow", "col3": "Russian"},
    {"col1": "US", "col2": "Washington, D.C.", "col3": "English"},
    {"col1": "Colombia", "col2": "Bogotá", "col3": "Spanish"}
]
header = ["col1", "col2", "col3"]

def write_csv_from_dicts(data, header, filename):
    with open(filename, "w") as csv_file:
        dict_writer = csv.DictWriter(csv_file, fieldnames=header)
        dict_writer.writeheader() # write header
        for row in data:
            dict_writer.writerow(row) # write each row

write_csv_from_dicts(data_dict, header, "file2.csv")

file2.csv

col1,col2,col3
Russia,Moscow,Russian
US,"Washington, D.C.",English
Colombia,Bogotá,Spanish

в) Написание CSV с пандами

import pandas as pd


data_dict = [
    {"col1": "Russia", "col2": "Moscow", "col3": "Russian"},
    {"col1": "US", "col2": "Washington, D.C.", "col3": "English"},
    {"col1": "Colombia", "col2": "Bogotá", "col3": "Spanish"}
]

def write_csv_pandas(data, filename):

    pd.DataFrame(data).to_csv(filename, index=False)

write_csv_pandas(data_dict, "file3.csv")

file3.csv

col1,col2,col3
Russia,Moscow,Russian
US,"Washington, D.C.",English
Colombia,Bogotá,Spanish
0 голосов
/ 11 ноября 2018

Вы можете использовать это, чтобы добавить заголовок:

header = "col1,col2,col3"
with open('file.csv','w') as my_csv:
    my_csv.write(header+'\n')

относительно заполнения вашего CSV данными, это будет зависеть от исходных данных, которые вы будете использовать в качестве источника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...