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

如何使用melt方法将Pandas DataFrame的列转换为行格式?

我已经查阅了本站大量与melt相关的问题,但都无法实现我想要的效果。

我有如下所示的DataFrame:
数据表示例

我希望通过melt操作将其转换为如下结构:
目标数据结构示例

我已经尝试了Stack Overflow上多种melt与pivot的使用变体,均未得到预期结果。
如果该问题属于重复问题请告知我,因为我尚未找到合适的解决方案。

我的测试DataFrame如下:

stack.to_dict()

{'A': {0: 1, 1: 5}, 'B': {0: 2, 1: 6}, 'C': {0: 3, 1: 7}, 'D': {0: 4, 1: 8}}

解决方案

首先构造测试DataFrame:

import pandas as pd
df = pd.DataFrame({'A': {0: 1, 1: 5}, 'B': {0: 2, 1: 6}, 'C': {0: 3, 1: 7}, 'D': {0: 4, 1: 8}})

你可以直接用转置的方式实现需求,代码更简洁高效:

res = df.T.rename(columns={0: 'Col1', 1: 'Col2'}).reset_index(names='Group')

如果你指定要用melt实现,可以用以下写法:

res = df.melt(var_name='Group', value_name='value')
res['col'] = 'Col' + (res.groupby('Group').cumcount() + 1).astype(str)
res = res.pivot(index='Group', columns='col', values='value').reset_index().rename_axis(columns=None)

最终输出结果:

GroupCol1Col2
A15
B26
C37
D48

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:06:07