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

如何将pandas DataFrame列名转为field列并拼接对应列数据

pandas宽表转指定格式长表实现方法

该需求属于典型的宽表转长表操作,优先使用pandas内置的melt()方法实现,代码简洁效率高。

实现代码

import pandas as pd

# 构造原始示例DataFrame
df = pd.DataFrame(data=[[1, 2, 3], [4, 5, 6]], columns=['a', 'b', 'c'])

# 执行格式转换
result = df.melt(var_name='field', value_name='data')
print(result)

运行输出

field  data
0     a     1
1     a     4
2     b     2
3     b     5
4     c     3
5     c     6

和预期输出完全匹配。

参数说明

  • var_name:指定原DataFrame列名转换后存储的新列名,此处对应需求中的field列
  • value_name:指定原DataFrame各单元格数值转换后存储的新列名,此处对应需求中的data列

备选实现方式

如果习惯用stack()接口,也可以通过如下代码实现,输出结果完全一致:

result = df.stack().reset_index()
result.columns = ['tmp_idx', 'field', 'data']
result = result[['field', 'data']].reset_index(drop=True)

该方法需要手动重命名列、清理多余索引字段,可读性不如melt(),日常使用优先选择前者即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 04:15:28