有如下两个文件
one.csv
列0, 列1, 列2, 列3
1, a, ww.ok;ww.ant;, anything
2, e, ww.kdi;, ihy
3, se, ww.sdd, sld
4, sd, ww.akd, sdjfa
two.csv
列0, 列1, 列2, 列3
1, sd, ww.ok;, 1245
2, 2e3, ww.kdi;, 432
3, de, ww.sdd;, 232
目标是先判断one.csv列2是否包含two.csv文件列2,如果包含,则将two.csv列3的数据追加到one.csv对应行的末尾,最终结果效果如下:
result.csv
列0, 列1, 列2, 列3, 列4
1, a, ww.ok;ww.ant;, anything 1245
2, e, ww.kdi;, ihy 432
3, se, ww.sdd, sld 232
4, sd, ww.akd, sdjfa
自己写了几行代码,一直卡在追加这一块,因为实际要处理的数据量大,不像给出的样本这样,以one.csv为基础遍历,则比对的数据不全,以two.csv为基础遍历,则写文件不知道如何进行。求前辈们指点。
import csv
import datetime
start = datetime.datetime.now()
with open('D:\one.csv') as one:
ic_rd = csv.reader(one)
next(ic_rd)
for i in ic_rd:
with open('D:\two.csv') as ga:
ga_rd = csv.reader(ga)
next(ga_rd)
for g in ga_rd:
if g[2] in i[2]:
i.append(g[2])
break
with open('D:\\result.csv','a+') as rs:
writer = csv.writer(rs)
writer.writerow(i)
end = datetime.datetime.now()
print (end-start)
相关分类