比较2个CSV文件,并从一个文件添加值到另一个匹配项

问题描述 投票:0回答:1

我有2个CSV文件,当有名称的比赛我想将日期添加到CSV1文件,如下面的例子。

CSV1的内容:

Num    Name   ID
1      aaa    129
2      bbb    298
3      ccc    654 

CSV2的内容:

Area   Size    Name    Region     Date
US     34      aaa     MW         02/12/18
US     21      ccc     WS         11/22/13
EU     76      bbb     UK         07/02/15

CSV1的结果:

Num    Name   ID      Date
1      aaa    129     02/12/18
2      bbb    298     07/02/15
3      ccc    654     11/22/13

这里是我的代码。

import csv
with open('build.csv', 'rb') as master:
master_indices = dict((r[2], i) for i, r in enumerate(csv.reader(master)))
with open('build.csv', 'rb') as masterdates:
master_dates = dict((r[4], i) for i, r in enumerate(csv.reader(masterdates)))
with open('bip.csv', 'rb') as hosts:
with open('results.csv', 'wb') as results:
reader = csv.reader(hosts)
writer = csv.writer(results)
writer.writerow(next(reader, []) + ['Date Rebuild'])
for row in reader:
index = master_indices.get(row[1])
if index is not None:
message = list(master_dates)[index]
else:
message = 'NOT FOUND in master list'
writer.writerow(row + [message])

结果日期是不正确的。

Num    Name   ID      Date
1      aaa    129     7/2/15
2      bbb    298     2/12/18
3      ccc    654     11/22/13
python
1个回答
0
投票

使用熊猫包你应该能够解决这个问题。

csv1.merge(csv2, left_on='Name', right_on='Name')

不过,我建议你阅读guide

© www.soinside.com 2019 - 2024. All rights reserved.