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

Python Pandas如何为DataFrame现有列添加顶层主列头

Pandas为DataFrame添加多级顶层列头实现方法

问题场景

当前已有如下单级列头的DataFrame数据集:

import pandas as pd
data={'a1':[1,2,3,4,5],'a2':[4,5,6,7,8],'b1':[2,5,3,7,9],'b2':[7,5,8,9,3],'c1':[2,4,5,7,5]}
df = pd.DataFrame(data)
df

需要实现多级列头效果:将a1、a2归类到顶层列头A下,b1、b2归类到顶层列头B下,c1单独归类,效果如下:
多级列头示例效果

实现代码

通过pandas内置的MultiIndex多级列索引即可快速实现,无需安装额外依赖:

# 定义原始列和顶层分组的对应关系
col_group_map = {
    'a1': 'A',
    'a2': 'A',
    'b1': 'B',
    'b2': 'B',
    'c1': 'C' # 如果不需要给c1加顶层分组,可将'C'替换为空字符串''
}

# 替换原有列头为多级索引
df.columns = pd.MultiIndex.from_tuples(
    [(col_group_map[col], col) for col in df.columns]
)

运行后输出的df即为目标多级列头结构:

A     B     C
  a1 a2 b1 b2 c1
0  1  4  2  7  2
1  2  5  5  5  4
2  3  6  3  8  5
3  4  7  7  9  7
4  5  8  9  3  5

常用操作提示

  • 筛选某一顶层分组下的所有列:直接传入顶层列名即可,例如df['A']会返回a1、a2两列组成的单级头DataFrame
  • 筛选指定多级路径的单列:传入元组形式的路径,例如df[('B', 'b2')]即可取到B组下的b2列数据

内容的提问来源于stack exchange,提问作者Win Yen Tham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:24:22