合并缺少ID的CSV文件

时间:2018-12-16 22:41:47

标签: python file csv

我有2个CSV文件-output.csvresult.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

我该怎么做?

1 个答案:

答案 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