我有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
答案 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)