从pandas(python)中的多个数据表进行比较
我想从不同的excel文件中创建一个新的数据框 我在一张显示位置的数据表中有一个唯一的代码,而另一张数据表包含一个人的姓名和一个唯一的代码。我想做的是通过比较一个人的唯一代码来显示他的位置 与以下概念类似: 数据帧1.xlsx 数据帧2.xlsx: python预期的data frame.xlsx结果:从pandas(python)中的多个数据表进行比较,python,excel,pandas,dataset,Python,Excel,Pandas,Dataset,我想从不同的excel文件中创建一个新的数据框 我在一张显示位置的数据表中有一个唯一的代码,而另一张数据表包含一个人的姓名和一个唯一的代码。我想做的是通过比较一个人的唯一代码来显示他的位置 与以下概念类似: 数据帧1.xlsx 数据帧2.xlsx: python预期的data frame.xlsx结果: Name = dino, Location = serpong Name = ventura, Location = cisauk 有可能用熊猫做这个吗?或者我需要另一个库来执行此操作吗?是
Name = dino, Location = serpong
Name = ventura, Location = cisauk
有可能用熊猫做这个吗?或者我需要另一个库来执行此操作吗?是的,这里有一个示例。假设您正在阅读的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
再看一看,但它不起作用,ther的Pandas join问题:列重叠但没有指定后缀我应该怎么做?考虑到您提供的数据,有两个原因会发生这种情况。您没有指定“code”是标识每行的列,即index\u col=code,或者您的数据集中有更多的列。无论如何,我在两个数据帧中都添加了一列,它们具有相同的名称,并在更新中显示了如何使用“lsuffix”和“rsuffix”寻址。看见
>>> 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