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

如何用Python将DataFrame中的重复值转置为多列?

实现DataFrame的长格式转宽格式(透视转换)

完全可以用Python的pandas库实现这个数据转换,核心是使用pivot方法完成透视操作,步骤如下:

1. 构造原始DataFrame

先还原你提供的原始数据:

import pandas as pd

data = {
    "Col1": ["A", "A", "A", "B", "B", "B", "C", "C", "C"],
    "Col2": ["Day1", "Day2", "Day3"] * 3,
    "Col3": [10, 9, 11, 12, 7, 5, 9, 10, 6]
}
df = pd.DataFrame(data)

2. 执行透视转换

使用pivot方法将长格式数据转为目标宽格式:

# 透视转换:以Col2为行,Col1为列,Col3为值
pivoted_df = df.pivot(index="Col2", columns="Col1", values="Col3").reset_index()

# 调整列名格式,匹配需求
pivoted_df.columns.name = None  # 移除列的层级名称
pivoted_df = pivoted_df.rename(columns={"Col2": "Date"})

转换结果

执行后得到的pivoted_df就是你需要的格式:

DateABC
Day110129
Day29710
Day31156

关键参数说明

  • index:指定作为结果行标签的列(这里是日期列Col2)
  • columns:指定作为结果列标签的列(这里是分组列Col1的A/B/C)
  • values:指定填充到单元格中的数据列(这里是数值列Col3)

如果你的数据存在重复的(Col2, Col1)组合,可以改用pivot_table并指定聚合函数(如aggfunc='mean')来处理重复值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:15:42