在列值上匹配两个CSV文件的快速方法

时间:2017-08-04 11:42:32

标签: python csv merge

我有两个csv,其中行可以与一列中的值匹配(在对此列进行一些调整之后)。在匹配之后,我想从它们中取出一些值并创建一个新的组合行。

我想到了一个使用csv.DictReader的简单脚本,然后是一个双for循环:

for row1 in csv1:
    for row2 in csv2:
        if row1['someID'] == row2['someID]:
            newdict = ... etc

但是,1个文件是900万行,另一个是500k行。所以我的代码需要4.5 * 10 ^ 12次迭代。因此我的问题是:匹配它们的快速方法是什么?

重要提示:

  • 匹配它的'someID'既不是csv唯一的。
  • 我希望每场比赛都有额外的行。因此,如果出现'someID' 两次在csv1和3次csv2,我期望6行有这个'someID' 最后的结果。

1 个答案:

答案 0 :(得分:0)

解决方案确实是pandas和pd.merge。匹配500k和9密耳是大熊猫只需几秒钟:O感谢您的评论