python:通过两个参考列比较两个大型csv文件,并更新另一列
我有相当大的csv文件,大约400000行,如:python:通过两个参考列比较两个大型csv文件,并更新另一列,python,csv,Python,Csv,我有相当大的csv文件,大约400000行,如: 54.10,14.20,34.11 52.10,22.20,22.11 49.20,17.30,29.11 48.40,22.50,58.11 51.30,19.40,13.11 第二列大约250000行,第三列有更新的数据-第一列和第二列是更新的参考: 52.10,22.20,22.15 49.20,17.30,29.15 48.40,22.50,58.15 我想构建第三个文件,如: 54.10,14.20,34.11 52.10,22.2
54.10,14.20,34.11
52.10,22.20,22.11
49.20,17.30,29.11
48.40,22.50,58.11
51.30,19.40,13.11
第二列大约250000行,第三列有更新的数据-第一列和第二列是更新的参考:
52.10,22.20,22.15
49.20,17.30,29.15
48.40,22.50,58.15
我想构建第三个文件,如:
54.10,14.20,34.11
52.10,22.20,22.15
49.20,17.30,29.15
48.40,22.50,58.15
51.30,19.40,13.11
它必须包含第一个文件中的所有数据,但第三列的值取自第二个文件的行除外。建议您查看熊猫。你应该能够做你想做的事,它还将处理从CSV读取的数据(创建一个你要合并的数据框)建议你看看熊猫。您应该能够做您想做的事情,它还将处理从CSV读取的数据(创建一个您将合并的数据帧)一个stdlib解决方案,只需;第二个文件被读入内存(字典): 第一个
with
语句打开第二个文件,并在前两列上建立一个键控字典。假定这些在文件中是唯一的
然后,第二个块打开第一个文件进行读取,输出文件进行写入,并将输入文件中的每一行写入输出文件,用更新版本替换
更新
字典中的任何行。一个只有;第二个文件被读入内存(字典):
第一个with
语句打开第二个文件,并在前两列上建立一个键控字典。假定这些在文件中是唯一的
然后,第二个块打开第一个文件进行读取,输出文件进行写入,并将输入文件中的每一行写入输出文件,用更新的版本替换
更新字典中的任何行。我得到了TypeError:unhable type:'list'对不起,一切都很好,我相信是我的错误。谢谢你的帮助。我收到了打字错误:不可损坏的字体:“列表”对不起,一切都很好,我相信是我的错误。谢谢你的帮助。
import csv
with open('file2.csv', 'rb') as updates_fh:
updates = {tuple(r[:2]): r for r in csv.reader(updates_fh)}
with open('file1.csv', 'rb') as infh, open('output.csv', 'wb') as outfh:
writer = csv.writer(outfh)
writer.writerows((updates.get(tuple(r[:2]), r) for r in csv.reader(infh)))