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

如何在Pandas链式代码中重命名分组后的索引层级名称?

问题描述

现有名为bmi的DataFrame,需按Age值的十位数(即年龄段)分组汇总。执行以下代码后:

bmi.groupby(by=bmi.Age//10).describe().stack()

生成结果的索引名称为Age,希望将其改为Decade,并寻求简洁的链式调用实现方式,替代目前冗余的写法:

bmi.groupby(by=bmi.Age//10).describe().reset_index(level='Age', names='Decades').set_index('Decades').stack()
解决方案

Pandas内置的rename_axis()方法正是用来重命名索引(或列)名称的,完美支持链式调用,直接替代你想要的which_func():

方法1:字典映射修改指定索引层级

bmi.groupby(by=bmi.Age//10).describe().rename_axis({'Age': 'Decade'}).stack()

方法2:指定层级和新名称(更直观)

因为仅需修改单个索引层级,可直接传入层级名和新名称:

bmi.groupby(by=bmi.Age//10).describe().rename_axis('Decade', level='Age').stack()

方法3:提前在分组阶段指定索引名称

还可以在groupby时就直接定义好索引名称,避免后续修改步骤:

# 方式A:通过groupby参数指定
bmi.groupby(by=bmi.Age//10, group_keys=True).describe().rename_axis('Decade').stack()

# 方式B:先构造年龄段列再分组(可读性更强)
bmi.assign(Decade=bmi.Age//10).groupby('Decade').describe().stack()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:20:26