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

如何对长格式DataFrame执行pivot透视转换得到目标宽表

Pandas长表透视转宽表实现方法

你的需求是标准的长表转宽表场景,由于每个SN与Feature的取值组合唯一,无重复值需要聚合,直接使用pandas的pivot()方法即可完成转换。

实现步骤

  • 第一步:确认原始表结构
    原始长表包含4个字段,其中核心业务字段为:
    • SN:序列号,作为宽表的行唯一标识
    • Feature:特征名,取值为table/mix_ratio/date,作为宽表的列名
    • value:特征值,作为宽表的单元格填充值
  • 第二步:编写透视代码
    以你描述的样例数据为例,完整可运行代码如下:
import pandas as pd

# 构造样例长表数据
df_long = pd.DataFrame({
    "index": list(range(9)),
    "Feature": ["table", "mix_ratio", "date"] * 3,
    "value": ["A", 0.12, "2/2/2022", "B", 0.15, "2/3/2022", "C", 0.17, "2/4/2022"],
    "SN": [12345]*3 + [12346]*3 + [12347]*3
})

# 执行透视转换
df_wide = df_long.pivot(
    index="SN",
    columns="Feature",
    values="value"
).reset_index()  # 将SN从行索引还原为普通数据列
  • 第三步:结果校验
    转换完成的宽表结构和你预期完全一致,样例输出如下:
SNtablemix_ratiodate
12345A0.122/2/2022
12346B0.152/3/2022
12347C0.172/4/2022

注意事项

如果你的原始数据存在同一个SN+Feature对应多条记录的情况,需要替换为pivot_table()方法并指定聚合规则,例如取第一条匹配值可以写为:

df_wide = df_long.pivot_table(
    index="SN",
    columns="Feature",
    values="value",
    aggfunc="first"
).reset_index()

在组合值唯一的场景下,优先使用pivot(),执行效率更高。


内容的提问来源于stack exchange,提问作者Ignacio Peñafiel Miguel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:03:29