Python比较2个csv文件,将匹配行的最后一列写入第3个fi

2024-04-25 00:48:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有2个csv文件:

1.csv文件

param.1, 256,254,236
param.2, 256,260,300
param.3, 300,700,800
...

文件2.csv

^{pr2}$

如您所见,行的顺序并不相似。file2.csv有一个额外的行,这是结果。我希望脚本遍历并将每一行与file1.csv进行比较,找到匹配的行。然后从匹配行中获取最后一个值(0.8),并从file1.csv获取索引值(param.3)。然后输出一个名为result.3的新文件,并在该文件中写入0.8。同样的,我要做几百个数据。如果最后一个字段是空的,我想输出“none”,并带有相应的文件名result.x

如果我不清楚,请告诉我。谢谢你的帮助。在

抱歉,我应该添加到目前为止我正在尝试的内容,这不会给我任何输出。不知道怎么了

^{3}$

Tags: 文件csv数据脚本none内容顺序文件名
1条回答
网友
1楼 · 发布于 2024-04-25 00:48:28

构造两个包含数据的字典,然后将它们合并到公共键上

>>> d1 = {(b.strip(),c,d):a for a,b,c,d in[r.split(',')for r in open('f1.csv')]}
>>> d2 = {(b,c,d):[a,e] for a,b,c,d,e in[r.split(',')for r in open('f2.csv')]}
>>> d3 = {k2:d2[k2]+[d1[k2]] for k2 in d2 if k2 in d1}

结果是

^{pr2}$

当你有d3你可以输出你想要的任何东西(我不得不承认我还没有完全理解你的输出需求…)。在

相关问题 更多 >