【问题标题】:How do I read two CSV files and compare 1 column from both and then write to a new file where columns match如何读取两个 CSV 文件并比较两者中的 1 列,然后写入列匹配的新文件
【发布时间】: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')

标签: python pandas csv


【解决方案1】:

试试merge

out = df1.merge(df2[['Names']],how='inner',on='Names')
Out[44]: 
   ID  Names
0   1   Bill

【讨论】:

    猜你喜欢
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多