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

如何优化Pandas宽表转两列长表操作,寻求高效替代方案

高效实现Pandas宽表转长表的优化方案

你当前用链式转置、unstack的方法在数据量较大时性能不足,推荐使用Pandas原生的pd.melt()函数,这是专门为宽表转长表设计的优化接口,性能远优于手动组合操作。

原宽表数据

import pandas as pd

wide = pd.DataFrame(
    {
        'id':['foo'],
        'a':[1],
        'b':[2],
        'c':[3],
        'x':[4],
        'y':[5],
        'z':[6]
    }
)

优化后的实现代码

lon = pd.melt(
    wide,
    id_vars=['id'],  # 保留不参与转换的列
    var_name='type', # 原列名对应的新列名
    value_name='val' # 原列值对应的新列名
)

运行结果

id type  val
0  foo    a    1
1  foo    b    2
2  foo    c    3
3  foo    x    4
4  foo    y    5
5  foo    z    6

性能优势说明

pd.melt()是Pandas底层优化过的宽转长实现,直接基于数组操作完成列的重塑,避免了set_index()、.T转置、unstack()等步骤带来的内存拷贝与额外计算开销,在十万级以上数据量的场景下,性能提升会非常明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:50:18