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

Pandas宽表转长表:wide_to_long与melt的适用场景对比

Pandas中wide_to_long vs melt的适用场景对比

wide_to_long更适合的场景:

  • 列名有统一"前缀-后缀"结构的宽表转长表
    比如列名是score_1, score_2, age_1, age_2这种,前缀是指标名称,后缀是分组标识(年份、编号、类别等)。用wide_to_long能一次性把同前缀的列合并成一个长列,同时自动把后缀提取为新的分组列,不用像melt那样先转长再拆分列名,步骤更简洁。
    举个实际例子:原表有name, math_2020, math_2021, english_2020, english_2021列,用wide_to_long可以直接生成包含name, year, subject, score的长表;而用melt的话,得先把所有年份列转成值列,再拆分列名得到subject和year,还要做列名映射,操作更麻烦。

  • 需要保留多组标识列,同时批量处理同结构度量列
    当你的宽表有多个需要保留的非度量列(比如用户ID、姓名、部门),且度量列都是按统一规则命名的,wide_to_long可以直接指定这些标识列作为id_vars,一次性完成所有度量列的转长操作,不用像melt那样多次处理或合并结果。

  • 处理多组重复的度量指标
    比如一张表同时记录了不同年份的收入、支出、利润,列名是income_2020, income_2021, expense_2020, expense_2021,wide_to_long能一次性将这些转成长表,生成year(年份)和metric(收入/支出/利润)两个新列,而melt需要先转长所有列,再拆分列名,还要清洗拆分后的结果,效率和简洁性都不如前者。

补充:melt的适用场景

melt更适合列名没有统一结构的零散宽表,或者只需要将少数几列合并成值列的场景——比如把几列独立的指标(如身高, 体重, 年龄)转成指标名称和指标值的长表,这种场景下melt反而更直接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:17:08