根据公共字段“国家/地区”组合3个数据帧

时间:2019-07-12 18:27:51

标签: python-3.x pandas

我有3个具有国家/地区索引的数据框。我需要根据该“国家/地区”字段将这3个字段进行合并。

我的第一个尝试是将两个结合起来,然后将第三个结合起来,这就是我得到的结果:

pd.merge(energy, GDP, how='outer', left_index=True, right_index=True)

我尝试了3个在此网站上获得高度评价的选项:

import functools
dfs = [energy, GDP, ScimEn]
df_final = functools.reduce(lambda left,right: pd.merge(left,right,on='Country'), dfs)
energy.merge(GDP,on='Country').merge(ScimEn,on='Country')
pd.concat([energy.set_index('Country'), GDP.set_index('Country'), ScimEn.set_index('Country')], axis=1)
  

KeyError:“国家/地区”

     

在处理上述异常期间,发生了另一个异常:

     

KeyError
  追溯(最近一次通话)    在()中        40 #df_final = functools.reduce(lambda left,right:pd.merge(left,right,on ='Country'),dfs)        41#energy.merge(GDP,on ='Country')。merge(ScimEn,on ='Country')   ---> 42 pd.concat([energy.set_index('Country'),GDP.set_index('Country'),ScimEn.set_index('Country')],轴= 1)

1 个答案:

答案 0 :(得分:0)

您需要进行多个合并。请尝试以下操作:

merge1 = pd.merge(energy, GDP, how='inner', on='Country')
final = pd.merge(merge1, ScimEn, how='inner', on='Country')