如何比较两个不同文件中的两个相同的excel列,并将差异输出到新文件中

问题描述 投票:-2回答:1

我有两个名为test1.csvtest2.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')

python pandas set difference
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.