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

Pandas用rename_axis设置表头后按Hour分组求和报KeyError如何解决

报错根因
  • rename_axis()的作用是修改行/列索引的名称,不会生成新的普通列,你看到的Hour是索引的标识,不属于数据框的列字段,所以按列名查询时触发KeyError。
  • 额外变量名风险:你修改索引名的操作是在df_output上执行的,但分组代码调用的是原始数据集df,如果是笔误请统一使用处理后的df_output变量。
解决方案

你可以根据实际场景选择对应方案:

方案1:索引转列后按列分组

如果需要把Hour、Input转为普通字段使用,先重置索引即可:

# 将多级行索引转为普通列
df_output = df_output.reset_index()
# 后续分组操作可正常执行
df_output = df_output.groupby(['Hour'], as_index=False).sum()

方案2:直接按索引分组

不需要修改数据结构的情况下,指定按索引层级分组即可:

# level参数传入索引名Hour,直接按索引分组
df_output = df_output.groupby(level='Hour', as_index=False).sum()

导入无表头Excel的正确设置列名方式

如果你只是要给无表头的Excel数据设置列名,不需要用rename_axis,直接给列属性赋值即可:

# 直接给列字段设置名称,后续可直接按列名操作
df_output.columns = ['Hour', 'Input']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:09:02