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

如何用pd.melt将列名作为标识符转换Pandas DataFrame为长表

实现方案

优先使用melt的方法

直接调用pandas的melt宽转长方法,指定对应列名即可,转换结果完全符合需求:

import pandas as pd

# 原始DataFrame构造
df = pd.DataFrame({"MCD":[1,2,-2,-3, 5],
                   "AAPL":[-0.3, -0.6, 0.6, 0.9, -1.5],
                   "GOOG":[-0.8, 1.6, 2.4, 3.6 , -4],
                   "MSFT":[-0.1, -0.4, 0.8, 1.1, -1.3]})

# 转换核心代码
desired_df = df.melt(var_name='ticker', value_name='return')

其中参数var_name指定原表列名存储的新列名,value_name指定原表数值存储的新列名,默认转换顺序和原表列的先后顺序一致,索引自动从0开始生成,和你给出的目标格式完全匹配。

备选stack实现方案

也可以用堆叠方法实现,效果相同:

desired_df = df.stack()\
              .reset_index(level=0, drop=True)\
              .rename_axis('ticker')\
              .reset_index(name='return')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:21:00