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

如何高效实现Pandas DataFrame的宽表转长表(逆透视)操作?

Pandas宽表转长表的高效实现方式

要实现这种宽格式到长格式的转换,最直接高效的方法是使用Pandas内置的melt()函数——这是Pandas专门为宽表转长表设计的优化工具,性能远优于手动循环或拼接操作。

步骤示例:

  1. 构造原始宽格式DataFrame:
import pandas as pd

# 构建原始数据
df = pd.DataFrame(
    data=[[0.10, 0.74, 0.25], [0.80, 0.15, 0.05]],
    index=['John', 'Alex'],
    columns=['M1', 'M2', 'M3']
)
  1. 使用melt()完成转换:
# 宽转长,保留原索引,指定新列名
long_df = df.melt(ignore_index=False, var_name='M', value_name='value')

转换后结果:

M  value
John   M1   0.10
John   M2   0.74
John   M3   0.25
Alex   M1   0.80
Alex   M2   0.15
Alex   M3   0.05

关键参数说明:

  • ignore_index=False:保留原有的行索引(John、Alex),若设为True会生成新的整数索引
  • var_name='M':将原列名(M1、M2、M3)映射到新列M中
  • value_name='value':将原数值数据映射到新列value中

melt()是Pandas原生实现的函数,底层经过性能优化,处理大规模数据集时效率极高,是这类转换场景的首选方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:36:22