мне потребовалось время, чтобы разобраться с этим.
Прежде всего, вы извлекаете значения файлов:
import csv
with open('old.csv', 'r') as old_file:
old_csv = [row for row in csv.reader(old_file)]
with open('new.csv', 'r') as new_file:
new_csv = [row for row in csv.reader(new_file)]
затем нам нужно получить имена нового файла :
new_names = [row[0] for row in new_csv]
тогда мы можем перебирать все старые строки, чтобы мы могли изменить новый файл и обновить значения
for name, number in old_csv:
index = None
#Check if the name is already in the file
if name in new_names:
index = new_names.index(name)
new_csv[index].append(number)
#If not, add the new name with the number. This is maybe not neccessay
else:
new_entry = [name, number]
new_csv.append(new_entry)
После объединения списков мы записываем новый файл
with open('merged_file.csv', 'w') as merge_file:
merger = csv.writer(merge_file)
for row in new_csv:
merger.writerow(row)
Файл выглядит так:
Name, 2016, 2015
Hill, 289
Jill, 501, 215
Rauf, 631
Jack, 520, 205
Kay, 236
Joy, 615, 369
не был уверен, является ли «имя» заголовком или нет. Это нужно добавить в csv reader