我有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)
答案 0 :(得分:0)
您需要进行多个合并。请尝试以下操作:
merge1 = pd.merge(energy, GDP, how='inner', on='Country')
final = pd.merge(merge1, ScimEn, how='inner', on='Country')