【发布时间】:2017-05-14 14:28:08
【问题描述】:
我有两个 .csv 文件。一个有info1,一个有info2。文件如下所示
文件1:
20170101,,,d,4,f,SWE
20170102,a,,,d,f,r,RUS <-
文件2:
20170102,a,s,w,,,,RUS <-
20170103,d,r,,,,FIN
我想将这两行(标记为“
20170102,a,s,w,d,f,r,RUS
我知道我可以编写类似这样的脚本:
for row1 in csv_file1:
for row2 in csv_file2:
if (row1[0] == row2[0] and row1[1] == row2[1]):
do something
有没有其他方法可以找出哪些行在开头有相同的项目,或者这是唯一的方法?这是找出相似之处的非常慢的方法,并且需要几分钟才能在 100 000 个行文件上运行。
【问题讨论】:
-
我建议合并文件,然后按前两列而不是嵌套循环排序
-
哪些列使行匹配?它只是第一列(例如,RUS 不会有 20170101)还是组合?另外,顺序重要吗?
-
一行有35个项目。项目 0-4 在两个文件中,5-9 在文件 1 中,10-20 在文件 2 中,21-34 在两个文件中。