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

使用Pandas实现多列表格的逆透视转换

解决方法

可以通过 Pandas 的 melt() 方法快速实现多层列索引 DataFrame 到目标长格式表格的转换,步骤如下:

1. 确认原数据结构

假设你的原 DataFrame 满足:

  • 行索引为 Date 和 Hour(或这两列为普通列)
  • 列是三层 MultiIndex,层级名称分别为 Concept0、Concept1、Concept2,对应的值为 Unit 列的数值

2. 具体代码实现

import pandas as pd

# 假设原DataFrame名为df
# 第一步:如果Date和Hour是行索引,先转为普通列
df = df.reset_index()

# 第二步:使用melt转换格式
result_df = df.melt(
    id_vars=['Date', 'Hour'],  # 保留不转换的列
    var_name=['Concept0', 'Concept1', 'Concept2'],  # 多层列索引的名称
    value_name='Unit'  # 数值列的名称
)

3. 验证结果

执行上述代码后,result_df 的结构就会和你期望的表格完全一致:

DateHourConcept0Concept1Concept2Unit
2022-07-291AMX0.1
2022-07-291AMY0.2
2022-07-291ANW0.3
2022-07-291ANZ0.4

如果原 DataFrame 的列层级名称和示例不同,只需要修改 var_name 里的参数对应实际层级名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 13:54:37