Python DataFrame按playerid分组触发KeyError问题求助
解决KeyError: 'playerid'问题
问题原因
playerid是你的all_players DataFrame的索引,而非普通数据列,所以groupby('playerid')会尝试查找名为playerid的列,找不到就触发了KeyError。
三种可行解决方案
直接按索引级别分组(推荐)
修改代码,用level参数指定按索引分组:final_sheet = all_players.groupby(level='playerid').mean().sort_values('Rating', ascending=False)先将索引转为列再分组
先重置索引把playerid转为列,再按列名分组:# 重置索引,playerid成为普通列 all_players_reset = all_players.reset_index() final_sheet = all_players_reset.groupby('playerid').mean().sort_values('Rating', ascending=False)用mean的level参数直接聚合
因为目标是对重复索引行取均值,可直接调用mean方法并指定索引级别,写法更简洁:final_sheet = all_players.mean(level='playerid').sort_values('Rating', ascending=False)
内容的提问来源于stack exchange,提问作者Matthew Kerns
相关产品推荐
相关产品推荐

