与pandas(python)中的多个数据表进行比较

时间:2019-05-12 03:57:08

标签: python excel pandas dataset

我想用不同的excel文件制作一个新的数据框。

我在一个数据表中有一个唯一的代码来显示位置,在另一个数据表中包含一个人的名字和一个唯一的代码。我想做的是通过比较一个人的唯一代码来显示一个人的位置。

类似于以下概念:

数据框1.xlsx

 code = 1234, Location = serpong
 code = 9876, Location = cisauk

数据框2.xlsx

code = 1234, Name = Dino
code = 9876, Name = ventura

期望的数据frame.xlsx (由python结果):

Name = dino, Location = serpong
Name = ventura, Location = cisauk 

是否可以使用pandas来做到这一点?还是我需要另一个图书馆来做到这一点?

1 个答案:

答案 0 :(得分:0)

是的,这是一个例子。假设您正在读取的XLSX工作簿有两张包含数据的表(显然,如果您正在从两个不同的Excel工作簿中进行读取,则需要修改第二个read_excel)。

>>> import pandas as pd
>>> df1 = pd.read_excel('c:/temp/book1.xlsx',sheet_name='Sheet1', index_col='code')
>>> df1
     Location
code
1234  serpong
9876   cisauk
>>> df2 = pd.read_excel('c:/temp/book1.xlsx',sheet_name='Sheet2', index_col='code')
>>> df2
         Name
code
1234     Dino
9876  ventura
>>> df3 = df1.join(df2)
>>> df3
     Location     Name
code
1234  serpong     Dino
9876   cisauk  ventura

编辑:在初始数据框创建中添加其他列。

>>> import pandas as pd
>>> df1 = pd.read_excel('c:/temp/book1.xlsx', sheet_name='Sheet1', index_col='code')
>>>df1

     Location  Foo
code
1234  serpong    1
9876   cisauk    2
>>> df2 = pd.read_excel('c:/temp/book1.xlsx', sheet_name='Sheet2', index_col='code')
>>> df2

         Name Foo
code
1234     Dino   a
9876  ventura   b
>>> df3 = df1.join(df2, lsuffix='_df1', rsuffix='_df2')
>>> df3

     Location  Foo_df1     Name Foo_df2
code
1234  serpong        1     Dino       a
9876   cisauk        2  ventura       b