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

如何将Python DataFrame按指定列分组并转置为多列格式?

解决方案

你可以通过分组添加组内序号 + 透视表的组合方式实现需求,具体步骤如下:

步骤1:构造示例DataFrame

先复现你的原始数据:

import pandas as pd

df = pd.DataFrame({
    'Heading 1': ['A', 'A', 'B', 'B', 'B'],
    'Values': [1, 2, 9, 8, 6]
})

步骤2:添加组内序号

对Heading 1分组后,用cumcount()给每个组内的行生成从1开始的序号,用来作为新列的标识:

df['seq'] = df.groupby('Heading 1').cumcount() + 1

步骤3:透视转换为目标格式

使用pivot()方法重组数据,最后重命名列并重置索引:

result = df.pivot(index='Heading 1', columns='seq', values='Values')
# 重命名列名
result.columns = [f'Value {col}' for col in result.columns]
# 重置索引,让Heading 1回到普通列
result = result.reset_index()

运行后得到的result结构如下:

Heading 1Value 1Value 2Value 3
A12NaN
B986

如果需要把空值(NaN)替换为空字符串,可添加一行:

result = result.fillna('')

关键说明

  • cumcount()是核心:它能给每个分组内的行分配唯一序号,确保每个Values值对应到正确的新列位置。
  • pivot()参数逻辑:index是保留为行的列,columns是要展开成新列的标识(这里的序号),values是填充新列的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:30:45