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

Python Pandas:将长表转换为宽表(Serial字段转列)

解决办法:用Pandas将长表转为指定结构的宽表

这事儿用pandas的pivot()方法就能完美搞定,我给你整理了完整的步骤,包括代码和结果示例:

1. 先构造你给出的原始DataFrame

首先先把你提供的数据用pandas还原出来,方便你直接测试:

import pandas as pd

data = {
    'Date': ['2/1/1996', '2/1/1996', '2/1/1996', '3/1/1996', '3/1/1996', '3/1/1996'],
    'Price': [0.5909, 0.5711, 0.5845, 0.5874, 0.5695, 0.584],
    'Serial': [1, 2, 3, 1, 2, 3]
}

df = pd.DataFrame(data)

2. 使用pivot()转换为宽表

直接调用pivot()方法,指定行索引、列名和对应填充的值即可:

wide_df = df.pivot(index='Date', columns='Serial', values='Price')

参数解释:

  • index='Date':把Date列作为结果的行索引
  • columns='Serial':把Serial的唯一值作为结果的列名
  • values='Price':用Price列的值填充对应的行列位置

3. 转换后的结果

运行上面的代码后,你会得到如下结构的宽表:

Serial        1      2      3
Date                         
2/1/1996  0.5909  0.5711  0.5845
3/1/1996  0.5874  0.5695  0.5840

额外提示:如果存在重复的(Date, Serial)组合

如果你的数据里同一个日期和序列号对应多个价格,pivot()会报错,这时候可以用pivot_table()并指定聚合函数,比如取平均值:

wide_df = df.pivot_table(index='Date', columns='Serial', values='Price', aggfunc='mean')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:29:43