首页 > 解决方案 > Python:在整个 Excel 表中查找值/数据

问题描述

我必须比较两个 Excel 表中存在的数据并在第三张表中插入差异。

我知道我必须进行两次比较,file1!=file2file2!=file1.

Q1:有没有一种方法可以只一步找到两个文件的差异?

到目前为止,我已经编写了以下代码及其工作:

import pandas as pd

df1 = pd.read_excel('/Users/Testing/Data1.xlsx')
df2 = pd.read_excel('/Users/Testing/Data2.xlsx')

difference = df1[df1!=df2]
print(difference)

样本数据:

Data1:

S.No ID    Name   RegionName   RegionCode
 1.  191  Roger   EU           76
 2.  334  Martin  TT           09
 3.  442  Steven  YU           89
 4.  776  Georgee TT           09


Data2:

S.No ID    Name   RegionName   RegionCode
01.  111  Ralph   EU           76
02.  254  Luthur  SE           19
03.  564  Todd    OO           67
04.  776  Georgee TT           09

我得到的区别是:

S.No ID    Name   RegionName   RegionCode
 01.  191  Roger   EU           76
 02.  334  Martin  TT           09
 03.  442  Steven  YU           89
 04.  776  Georgee TT           09
 05.  111  Ralph   EU           76
 06.  254  Luthur  SE           19
 07.  564  Todd    OO           67
 08.  776  Georgee TT           09

预期结果是:

S.No ID    Name   RegionName   RegionCode
01   191  Roger    EU           76
02   334  Martin   TT           09
03   442  Steven   YU           89
04   254  Luthur   SE           19 
05   564  Todd     OO           67
06   111  Ralph    EU           76

Q2: 

我怎样才能得到上述结果?要求是搜索和存储仅存在于一个文件(例如 Data1)中而不存在于另一个文件(例如 Data2)中的值。

非常感谢任何帮助。

标签: pythonpandas

解决方案


你可以 concat 和 drop_duplicates:

new_df = pd.concat([df1,df2])
new_df.drop_duplicates(keep=False)

    S.No    ID      Name    RegionName  RegionCode
0   1.0      191    Roger   EU           76
1   2.0      334    Martin  TT           9
2   3.0      442    Steven  YU           89
0   1.0      111    Ralph   EU          76
1   2.0      254    Luthur  SE          19
2   3.0      564    Todd    OO           67

推荐阅读