大熊猫-合并数据集

时间:2020-08-01 11:05:17

标签: python pandas

我有3个要与大熊猫结合的数据集。

第一类数据集是这样的。它在邮政编码中具有多个索引值,因为数据框中有多个餐厅(我正在尝试为这些餐厅提供更多的人口统计信息)。

   postcode      restaurants           
   3793          3,577
   3477             21
   3971             26
   3222          7,519
   3747          3,859

第二个是这样的(主要是邮政编码与一个或两个属性,是一个值对的键。

    postcode          burgers                  
    2640              38064  
  
    
    postcode       soda     
    3000           23715
    3002             854
    3003             780
    3004              35
    3006            3288>

这些已被简化。

使用concat或与熊猫合并时,我收到错误消息

ValueError: Plan shapes are not aligned

使用此代码

result = pd.concat(frames,join='outer')

如何将这些数据集简单地合并为一个?我犯了什么错误?

基于评论的预期输出

基本上是在寻找要放入数据框中的汉堡和苏打粉,作为邮政编码的值。

示例

    postcode      pop growth    burgers    soda   address       
        3793          3,577      123123    1231   AbyRoad
        3793          3,577      12351      5151   northst
        3971             26      6666      7777   northunder abby

1 个答案:

答案 0 :(得分:1)

首先,您需要确保邮政编码列是每个数据框的(唯一)索引。您需要全部运行此程序。

接下来,如果您确实具有所有索引为邮政编码的数据框。请将它们放在称为帧的列表(数据帧列表)中,并使用以下代码。

dfList = [df1, df2, df3]
frames = [df.set_index('postcode') for df in dfList]
pd.concat(frames, axis=1)

如果这不起作用,请尝试以下操作-

from functools import reduce

frames = [df.reset_index() for df in dfList] #reset the indexes and add dfs into a list
df_final = reduce(lambda left,right: pd.merge(left,right,on='postcode'), frames)