Python Dataframes没有合并索引

时间:2017-12-29 17:33:25

标签: python pandas dataframe merge

我正在尝试合并2个数据帧,但出于某种原因它正在抛出KeyError: Player_Id

我正在尝试合并Striker_IdPlayer_Id

这就是我的Dataframe的样子

enter image description here

合并代码:

player_runs.merge(matches_played_by_players,left_on='Striker_Id',right_on='Player_Id',how='left')

我做错了什么?

2 个答案:

答案 0 :(得分:4)

嗯,从查看你的问题来看,似乎你正在尝试合并索引,但是你把它们视为列?尝试稍微更改合并代码 -

player_runs.merge(matches_played_by_players,
                  left_index=True,
                  right_index=True,
                  how='left')

此外,请确保两个索引都属于相同类型(在这种情况下,请考虑 str int?)

player_runs.index = player_runs.index.astype(int)

matches_played_by_players.index = matches_played_by_players.index.astype(int)      

答案 1 :(得分:2)

你基本上合并了现有的列。这是因为reset_index创建了一个新的数据框,而不是更改它应用的数据框。使用reset_index时设置参数inplace=True应解决此问题,或者合并每个数据帧的索引。即。

pd.merge(df1,df2,left_index=True,right_index=True,how='left')