Объедините файлы CSV с отсутствующими идентификаторами - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть 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, который содержит данные из обоих файлов.В некоторых файлах отсутствуют идентификаторы, и они должны быть включены в файл.Например, из приведенных выше файлов:

комбинированные файлы.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 голосов
/ 17 декабря 2018

Вы создаете словарь из второго файла и используете его для поиска первого:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...