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

如何将Python DataFrame转为多级表头 使用pd.MultiIndex.from_product()失败求助

实现方案

核心是用pivot方法完成长表转宽表,再调整列层级顺序即可,完整实现代码如下:

import pandas as pd

# 假设df为你的Output1对应DataFrame
# 1. 长表转宽表
res = df.pivot(
    index="Date",
    columns="Name",
    values=["Raised", "Recvd", "Donated"]
)
# 2. 交换列层级,将人名放在上层、指标放在下层
res = res.swaplevel(axis=1)
# 3. 调整列顺序为需求指定的John→Mary→David,指标顺序Raised→Recvd→Donated
col_order = pd.MultiIndex.from_product(
    [["John", "Mary", "David"], ["Raised", "Recvd", "Donated"]]
)
res = res.reindex(col_order, axis=1)
# 4. 可选:清除列索引名称,匹配Output2的显示样式
res.columns.names = [None, None]
res = res.reset_index()

问题说明

你之前直接用pd.MultiIndex.from_product无法得到正确结果,是因为没有先完成长表到宽表的结构转换,直接给原有长表套多层索引自然匹配不上数据顺序,先通过pivot完成维度转换是核心步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:15:01