使用Python Pandas比较两个Excel文件中的两个特定列

时间:2018-08-15 19:31:36

标签: python excel pandas dataframe

我想比较两个Excel文件中的两个特定列(数字和产品)。 File1的数据如下:

Name    Surname  Number     Product
-----------------------------------
Wilber  Avery    ABMZ152    1.03
Alina   Speidel  ABMZ152    1.04
Obdulia Sala     ABKL208    1.05
Paola   Burne    ABTY205    1.14
Magno   Angevin  ABLO207    1.2
Don     Mcduffie ABEJ208    1.13

File2上的数据如下:

Number     Product
-------------------
ABMZ435    1.03
ABNZ152    1.04
AB435TH    1.05
ABTN435    1.14
ABPPJ6     1.2
ABEJ208    1.13

我尝试了以下代码,

df1 = pd.read_excel('File1.xlsx','Sheet1',na_value=['NA'])
df2 = pd.read_excel('File2.xlsx','Sheet1',na_value=['NA'])

df1.sort_values(by=["Number", "Product"])
df1 = df1.set_index("Number","Product")

df2.sort_values(by=["Number", "Product"])
df2 = df1.set_index("Number","Product")

def report_diff(x):
    return x[0] if x[0] == x[1] else '{} ----> {}'.format(*x)

diff_panel = pd.Panel(dict(df1=df1, df2=df2))

diff_output = diff_panel.apply(report_diff, axis = 0)
diff_output.tail()

并且此代码无法解决问题。 答案应如下:

文件2中的名称和产品(如果它与文件1中的名称和编号不匹配)

输出:

Name   Surname   Number   File2 Prod
------------------------------------
Thomas Kimer     ABEJ093  12.3
Jackie Dignor    ABSER78  3.2

0 个答案:

没有答案