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

在Pandas中实现逆透视操作求助:数据格式转换需求

Pandas逆透视(宽表转窄表)解决方案

嗨,这个需求用Pandas内置的melt()函数就能轻松实现,这正是你要的**逆透视(即pivot的反向操作)**功能!

步骤1:构造原始数据(模拟你的输入)

先还原你给出的宽表数据:

import pandas as pd

df = pd.DataFrame({
    'Date': [2005, 2006],
    'A': [1, 6],
    'B': [2, 7],
    'C': [3, 8],
    'D': [4, 9],
    'E': [50, 10]
})

步骤2:执行逆透视操作

直接调用melt()函数,指定关键参数即可完成转换:

# 核心逆透视代码
melted_df = df.melt(
    id_vars=['Date'],  # 保留作为标识的列,不会被展开
    var_name='X',      # 原来的列名(A/B/C/D/E)会存入这个新列
    value_name='Val'   # 原来列中的数值会存入这个新列
)

可选:排序优化(让结果更整齐)

如果你希望结果按Date和X有序排列,可以追加排序操作:

melted_df = melted_df.sort_values(['Date', 'X']).reset_index(drop=True)

最终结果

执行完后,melted_df的结构就完全符合你的需求了:

DateXVal
2005A1
2005B2
2005C3
2005D4
2005E50
2006A6
2006B7
2006C8
2006D9
2006E10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:32:31