我有2个CSV文件-output.csv
和result.csv
。
output.csv
id, data1, data2, data3
56, 78, 38, 223
67, 12, 35, 52
1, 7, 100, 500
result.csv
id, data4, data5, data6
56, at, text, 78
1, random, text, 23
我希望编写一个函数来创建一个新的CSV文件,其中包含两个文件中的数据。某些文件缺少ID,这些ID应该包含在文件中。例如,从以上文件中:
combinedFiles.csv
id, data1, data2, data3, data4, data5, data6
56, 78, 38, 223, at, text, 78
67, 12, 35, 52,,,
1, 7, 100, 500, random, text, 23
我该怎么做?
答案 0 :(得分:0)
您可以从第二个文件创建字典,以查找第一个文件:
import csv
[h1, *d1], [h2, *d2] = list(csv.reader(open('output.csv'))), list(csv.reader(open('result.csv')))
_d1, _d2 = {a:b for a, *b in d1}, {a:b for a, *b in d2}
with open('combinedFiles.csv', 'w') as f:
write = csv.writer(f)
write.writerows([[*h1, *h2[1:]], *[[a, *(b+_d2.get(a, []))] for a, b in _d1.items()]])
输出:
id,data1,data2,data3,data4,data5,data6
56,78,38,223,at,text,78
67,12,35,52,,,
1,7,100,500,random,text,23