我正在尝试在两个数据帧之间执行vlookup /合并。我得到错误
KeyError: "['Player'] not in index"
我试图重新索引列,但似乎不起作用。
df1= df1.reindex(columns = ['Player','Category'])
我当前的代码是这样的missingnames = pd.merge(df1,df2[['Player','Player Name']],on='Player',how = 'left')
我的数据框如下:
df1:
df2:
预期产量
有人可以帮忙吗? 谢谢。
答案 0 :(得分:1)
您可以这样做:
df1['Exists'] = df1['Player'].str.lower().isin(df2['Player Name'].str.lower())
答案 1 :(得分:1)
使用numpy.where
:
df1['Exists']=np.where(df1['Player'].str.upper().isin(df2['Player Name'].str.upper()),'Exists','')
答案 2 :(得分:1)
仔细查看您的merge参数和每个数据框中的列
df1包括“玩家”和“类别” df2包括“玩家名称”,“身高”和“体重”
您的merge参数说列“ Player”在df2中,但不是。
missingnames = pd.merge(df1,df2[['Player','Player Name']],on='Player',how = 'left')
============================== ^
缺少的名称需要更改为:
missingnames = df1.merge(df2,left_on='Player',right_on='Player Name',how = 'left')
然后从那里确定是否缺少任何值