python判断并合并CSV文件

有如下两个文件
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)
鸿蒙传说
浏览 605回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python