You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas执行pivot_table时team列存在却报KeyError错误问题求助

解决方案

你可以直接用pivot_table的聚合能力一步生成目标结果,无需提前分组计算,写法更简洁也能避免中间变量列丢失的问题:

df_overall = df.pivot_table(
    index='question',
    columns='team',
    values='answers',
    aggfunc='mean'
).reset_index().rename_axis(None, axis=1)

运行后输出的结果完全符合你预期的格式。


原有代码报错原因&修正方案

你写的原始代码逻辑本身是可行的,出现KeyError: 'team'大概率是运行过程中中间变量df_overall被之前的测试代码污染导致列丢失,你可以重启Python内核后重跑原始代码即可正常运行。也可以用下面的写法优化原有逻辑,减少中间操作步骤降低出错概率:

# 分组直接计算正确率,as_index=False避免分组键转索引
df_rating = df.groupby(['team', 'question'], as_index=False)['answers'].mean()
df_rating.rename(columns={'answers': 'TeamRanking'}, inplace=True)
# 透视生成宽表
df_overall = df_rating.pivot(index='question', columns='team', values='TeamRanking').reset_index().rename_axis(None, axis=1)

注:布尔列直接用mean()计算等价于你写的sum()/len(x),效果一致写法更简洁

内容的提问来源于stack exchange,提问作者futuredataengineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 21:54:05