Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从pandas(python)中的多个数据表进行比较_Python_Excel_Pandas_Dataset - Fatal编程技术网

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

从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 有可能用熊猫做这个吗?或者我需要另一个库来执行此操作吗?是

我想从不同的excel文件中创建一个新的数据框

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

与以下概念类似:

数据帧1.xlsx

数据帧2.xlsx:

python预期的data frame.xlsx结果:

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