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

如何用Pandas构建多层级列名(MultiIndex)实现指定列分组?

解决方案

要实现这种多层级列名的效果,核心是给DataFrame设置**MultiIndex(多级索引)**类型的列名,不需要用到merge或concat方法。具体步骤如下:

  1. 定义符合需求的多级列索引结构,对应目标的层级关系
  2. 将原DataFrame的列名替换为这个多级索引

完整代码示例

import pandas as pd

data = {
    "a": [420, 380, 390],
    "b": [50, 40, 45],
    "c": [30, 22, 11],
    "d": [323, 2, 33]
}

df = pd.DataFrame(data)

# 构造目标多级列索引
new_columns = pd.MultiIndex.from_tuples([
    ('a', ''),   # 第一列:一级名a,二级名空
    ('d', 'b'),  # 第二列:一级名d,二级名b
    ('d', 'c'),  # 第三列:一级名d,二级名c
    ('d', 'd'),  # 第四列:一级名d,二级名d
])

# 替换原列名
df.columns = new_columns

print(df)

执行结果

a   d
            b   c    d
0  420  50  30  323
1  380  40  22    2
2  390  45  11   33

原理说明:通过from_tuples方法创建多级列索引,每个元组代表一列的层级名称(第一个元素是一级列名,第二个是二级列名)。原DataFrame的列顺序刚好和目标列的对应关系匹配,直接替换列名即可实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:39:55