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

如何基于指定列给Pandas DataFrame添加分组表头行?

为Pandas DataFrame添加分组子表头

步骤1:修正现有表头

如果你的DataFrame实际列名在第二行(索引为1),先将其设为正式列名并清理无关行:

import pandas as pd

# 假设df是你的目标DataFrame
df.columns = df.iloc[1]  # 把第二行设为列名
df = df.drop([0, 1])     # 删除前两行(原表头上方的无用行)
df = df.reset_index(drop=True)  # 重置索引

步骤2:定义列分组映射

明确哪些列归属于哪个子表头,示例如下(根据你的实际需求修改):

# 自定义分组规则:键是子表头名称,值是对应列名列表
group_map = {
    '订单核心信息': ['Order ID', 'Order Date', 'Ship Mode'],
    '客户信息': ['Customer ID', 'Customer Name', 'Region'],
    '商品交易信息': ['Product ID', 'Category', 'Sales', 'Quantity']
}

步骤3:构建多层子表头(MultiIndex)

将分组与列名组合成多层索引,实现子表头效果:

# 生成多层索引所需的元组列表
multi_column_tuples = []
for group_name, columns in group_map.items():
    for col in columns:
        multi_column_tuples.append((group_name, col))

# 为DataFrame设置多层表头
df.columns = pd.MultiIndex.from_tuples(multi_column_tuples)

可选:利用主键优化结构

如果需要用Order ID作为主键,可以将其设置为索引:

# 把Order ID设为索引(level=1表示取第二层列名)
df = df.set_index(('订单核心信息', 'Order ID'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:18:26