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

如何为Pandas DataFrame前3列外的每7列添加分组标题

Pandas 实现指定分组的多级表头

实现步骤

  1. 明确列分组规则:前3列(S、K、L)不分组,剩余列每4列分为一组,对应分组标题B、C、D;顶层统一为MAIN TITLE。
  2. 构建三级列索引的层级标签:
    • 顶层(Level 0):所有列统一使用MAIN TITLE
    • 中间层(Level 1):前3列为空字符串,后续每4列分别对应B、C、D
    • 底层(Level 2):保留原DataFrame的列名
  3. 将构建好的多级索引赋值给DataFrame的columns属性。

代码示例

import pandas as pd

# 模拟原DataFrame
data = {
    'S': [0, 1], 'K': [0, 1], 'L': [0, 0],
    'Z': [0, 0], 'X': [0, 0], 'C': [0, 0], 'V': [0, 0],
    'Z': [0, 0], 'X': [0, 0], 'C': [0, 0], 'V': [0, 0],
    'Z': [0, 0], 'X': [0, 0], 'C': [0, 0], 'V': [0, 0]
}
df = pd.DataFrame(data, index=['a', 'b'])

# 构建多级列索引
cols = df.columns.tolist()
level0 = ['MAIN TITLE'] * len(cols)
level1 = ['', '', ''] + ['B']*4 + ['C']*4 + ['D']*4
level2 = cols

df.columns = pd.MultiIndex.from_tuples(zip(level0, level1, level2), names=[None, None, None])

# 查看结果
print(df)

效果说明

运行代码后,DataFrame的表头会自动合并相同层级的标签,呈现出你需要的格式:顶层MAIN TITLE跨所有列,中间层B、C、D各自跨对应分组的4列,前3列的中间层为空,底层显示具体列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:35:18