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

如何将Pandas DataFrame转换为index、field、value结构的长表格式

Pandas宽表转长表实现方法

你需要执行的是宽表转长表操作,无需手动遍历,可通过以下两种内置方法实现:

方法1:使用stack方法(推荐)

stack会直接将列名转为二级索引,保留原始行索引,仅需两步即可得到目标结果:

# 构造示例DataFrame(你已有df可跳过这步)
import pandas as pd
df = pd.DataFrame(
    {'field_1': [123, 789, 131415], 'field_2': [456, 101112, 161718]},
    index=[10, 20, 30]
)

# 转换操作
res = df.stack().reset_index()
# 重命名列符合目标格式
res.columns = ['index', 'field', 'value']

执行后res就是你要的目标格式。

方法2:使用melt方法

melt是更通用的长宽转换函数,需手动指定保留原始索引:

res = df.reset_index()\
        .melt(id_vars='index', var_name='field', value_name='value')\
        .sort_values('index')\
        .reset_index(drop=True)

两种方法选择建议

  • 仅当前场景转换选stack,代码更简洁
  • 若后续需要自定义保留/排除更多列,选melt灵活度更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:36:05