Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python数据帧未在索引上合并_Python_Pandas_Dataframe_Merge - Fatal编程技术网

Python数据帧未在索引上合并

Python数据帧未在索引上合并,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我正试图合并2个数据帧,但由于某种原因,它抛出了KeyError:Player\u Id 我正在尝试合并前锋Id和球员Id 这就是我的数据帧的样子 合并代码: player_runs.merge(matches_played_by_players,left_on='Striker_Id',right_on='Player_Id',how='left') 我做错了什么?嗯,从您的问题来看,似乎您试图在索引上合并,但您将它们视为列?尝试稍微更改合并代码- player_runs.merge(ma

我正试图合并2个数据帧,但由于某种原因,它抛出了
KeyError:Player\u Id

我正在尝试合并
前锋Id
球员Id

这就是我的数据帧的样子

合并代码:

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

我做错了什么?

嗯,从您的问题来看,似乎您试图在索引上合并,但您将它们视为列?尝试稍微更改合并代码-

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

此外,确保两个索引都是相同的类型(在这种情况下,考虑<代码> STR <代码> INT/COD>?)< /P> 以及


基本上是在现有列上进行合并。这是因为
reset\u index
创建了一个新的数据帧,而不是更改其应用的数据帧。在使用重置索引时设置参数
inplace=True
可以解决此问题,或者在每个数据帧的索引上合并。i、 e

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

两个索引都是
Int64
,我运行了你的代码,得到了一个新错误:
ValueError:left\u索引参数必须是bool类型,而不是
@JaskaranSinghPuri你应该键入
True
,而不是
“True”
:-)工作正常!谢谢,但是我们没有定义左索引和右索引的索引名称,它是如何知道加入它们的?@JaskaranSinghPuri指定您要加入索引的。这就是熊猫执行合并所需的全部信息:)我只是在解释错误背后的原因
matches_played_by_players.index = matches_played_by_players.index.astype(int)      
pd.merge(df1,df2,left_index=True,right_index=True,how='left')