我有两个名为test1.csv
和test2.csv
的csv文件,它们都有一个名为“名称”的列。我想比较这两个文件之间在此[[Name
列中的每一行,并将不匹配的行输出到第三个文件。我看到了一些使用熊猫的示例,但没有一个适合我的情况。任何人都可以帮我获得脚本吗?
Test2将被更新为包括来自test1的所有值以及不包含在test1中的新值(这些是我要保存到第三个文件中的值)。此外,这些值可以随机添加到文件中,因此使用感谢set()函数
我的另一个想法是可能将每个excel文件中的'name'列分成两个字典,然后比较这些字典,让我知道这是否可行
列的示例如下:test1.csv:
Name Number Status
gfd454 456 Disposed
3v4fd 521 Disposed
th678iy 678 Disposed
test2.csv
Name Number Status gfd454 456 Disposed 3v4fd 521 Disposed th678iy 678 Disposed vb556h 665 Disposed
输出应为:
Name vb556h
我尝试过的代码有效,但是如果新值随机出现在文件中,则无效:
import pandas as pd df1 = pd.read_csv('test1.csv') df2 = pd.read_csv('test2.csv') df1 = df1.rename(columns={'Name': 'Name1'}) df2 = df2.rename(columns={'Name': 'Name2'}) df = pd.concat([df1, df2], axis=1) diff = df[df['Name1'].isnull()]['Name2'] # or df[df['Name1'] != df['Name2']]['Name2'] diff.to_csv('test3.csv')