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

使用Pandas pd.pivot_table触发KeyError,求按年统计分类列均值

解决pivot_table的KeyError问题:错误引用列名

嘿,这个问题很好解决!你碰到的KeyError '0'完全是因为在pivot_table的values参数里用了不存在的列名——你的DataFrame里明明是'cath1'、'cath2'、'cath3'这三个分类列,结果你写成了'0'、'1'、'2',pandas找不到这些列自然就报错了。

直接把values里的内容换成实际存在的列名就行,正确的代码应该是这样:

import pandas as pd
import numpy as np

# 基于你的df生成按年份聚合的各分类均值表
df1 = pd.pivot_table(df, index=['year'], values=['cath1', 'cath2', 'cath3'], aggfunc=np.mean)

要是想更省事,其实还能省略values参数——因为pivot_table默认会自动把所有非索引列的数值型字段纳入计算,刚好你的三个分类列都是数值类型,所以代码可以简化成:

df1 = pd.pivot_table(df, index='year', aggfunc=np.mean)

给你个小提醒:以后再碰到列名相关的错误,先跑一遍print(df.columns)确认下DataFrame里的列名到底是什么,能避免很多这类低级失误~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:06:24