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

Pandas如何根据MultiIndex其他层级值重命名指定索引层级

Pandas MultiIndex列按度量类型修改单位层级值实现方法

直接通过重建列多层索引的方式实现即可,.replace方法作用于DataFrame单元格值,无法修改索引层级内容。

实现代码

import pandas as pd

# 构造示例DataFrame
columns = pd.MultiIndex.from_product((("Length", "Weight"), ("Max", "Min"), ("asd",)), names=("Measure", "Info", "Unit"))
df = pd.DataFrame(0., columns=columns, index=range(2))

# 度量-单位映射字典
measure_to_unit = {"Length": "m", "Weight": "kg"}

# 遍历原列索引元组,替换Unit层级值后生成新的MultiIndex
new_cols = pd.MultiIndex.from_tuples(
    [(measure, info, measure_to_unit[measure]) for measure, info, _ in df.columns],
    names=df.columns.names
)

# 替换原DataFrame的列索引
df.columns = new_cols

运行结果

执行后打印df即可得到预期输出:

Measure Length     Weight
Info       Max Min    Max Min
Unit         m   m     kg  kg
0          0.0 0.0    0.0 0.0
1          0.0 0.0    0.0 0.0

说明

  • 该方法是MultiIndex修改的通用方案:只要需要按某一层级的取值修改其他层级的内容,都可以通过遍历原索引元组、替换目标值、重建索引的方式实现,不会出现索引错位问题。
  • 不要尝试直接修改索引对象的内部属性,Pandas的Index对象是不可变类型,直接修改内部值会触发不可预期的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:30:55