【发布时间】:2019-04-26 16:48:29
【问题描述】:
我正在尝试从 CSV 字典写入 CSV 文件。它比看起来要复杂一些。请更正我的代码,以便我可以获得所需的 CSV 文件。
我的 csv 文件:
id;Remarks;x;y;z
a1;Mv_biw;10;12;3
b1;Ins_slt_po_zd;20;22;5
a2;Mv_biw;25;17;7
a1;Ins_slt_po_zd;35;13;3
a1;Ins_slt_dkz;15;19;9
b1;Mv_biw;65;11;2
b2;Ins_slt_dkz;50;23;1
b2;Mv_biw;75;17;7
到目前为止我的代码:
import os
import csv
import collections
from csv import DictWriter
with open(r'C:\incsv_new.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=';')
my_dict = collections.defaultdict(dict)
for row in reader:
my_dict[row[0]][row[1]] = [row[2],row[3],row[4]]
print (my_dict)
with open(r'C:\outcsv_new.csv','w', newline='') as wf:
fieldnames = ['ID','x_Mv_biw', 'y_Mv_biw', 'z_Mv_biw', 'x_Ins_slt_po_zd', 'y_Ins_slt_po_zd', 'z_Ins_slt_po_zd', 'x_Slb_po_zd', 'y_Slb_po_zd', 'z_Slb_po_zd', 'x_Slb_dkz', 'y_Slb_dkz', 'z_Slb_dkz', 'x_Ins_slt_dkz', 'y_Ins_slt_dkz', 'z_Ins_slt_dkz']
my_write = csv.DictWriter(wf, fieldnames = fieldnames, delimiter = ';')
my_write.writeheader()
所需的输出 CSV 文件:
id;x_Mv_biw;y_Mv_biw;z_Mv_biw;x_Ins_slt_po_zd;y_Ins_slt_po_zd;z_Ins_slt_po_zd;x_Slb_po_zd;y_Slb_po_zd;z_Slb_po_zd;x_Slb_dkz;y_Slb_dkz;z_Slb_dkz;x_Ins_slt_dkz;y_Ins_slt_dkz;z_Ins_slt_dkz
a1;10;12;3;35;13;3;-1;-1;-1;-1;-1;-1;15;19;9
a2;25;17;7;-1;-1;-1;-1;-1;-1;-1;-1;-1;-1;-1;-1
b1;65;11;2;20;22;5;-1;-1;-1;-1;-1;-1;-1;-1;-1
b2;75;17;7;-1;-1;-1;-1;-1;-1;-1;-1;-1;50;23;1
【问题讨论】:
-
您遇到了什么错误?也链接错误。
-
你必须调用 writerow 。
for i in my_dict: my_write.writerow(i) -
@SmartManoj,请更正我的代码并重写代码
标签: python pandas csv export-to-csv