【发布时间】:2022-01-24 20:07:00
【问题描述】:
我有 2 个 CSV,其中包含一些名称。每个 CSV 中的重复项很少,我需要比较它们,如果两个 CSV 中存在相同的名称,则在新的 CSV 中更新。
CSV 1
ID, Names
1, Bill
2, Smith
CSV 2
ID, Names
1, James
2, Gates
3, Bill
由于 CSV 1 中的第一行与 CSV 2 中的第三行匹配
新建 CSV [所需输出]
ID, Names
1, Bill
我试过了:
import pandas as pd
df1 = pd.read_csv('csv1.csv')
df2 = pd.read_csv('csv2.csv')
df1['flag'] = 'old'
df2['flag'] = 'new'
df = pd.concat([df1, df2])
dups = df.drop_duplicates(df.columns.difference(['flag']), keep = False)
dups.to_csv('new_CSV.csv', index = False)
【问题讨论】:
-
csv1 中的第一行与 csv2 中的第三行不匹配。名称可以,但 ID 不同。
-
是的,我只是在比较名字。
-
也许你想使用合并:
df1.merge(df2, on='Names')