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

Pandas如何基于指定列的分组值拆分创建新列

问题解决方法

你使用pivot_table/pivot报错的核心原因是没有指定可唯一标识行的索引参数,导致同列名冲突。只需要先为每个count分组内的记录生成组内递增的行号作为透视行索引,即可完成你要的拆分效果,代码如下:

  • 首先构造示例数据集
import pandas as pd

df = pd.DataFrame({
    'count': [1, 1, 1, 2, 2, 2],
    'orders': [40, 60, 80, 10, 30, 50],
    'books': [2, 4, 6, 8, 10, 12]
})
  • 生成分组内的行序号,用于对齐不同分组的行
df['group_row_id'] = df.groupby('count').cumcount()
  • 执行透视并整理格式
# 透视转换
pivot_res = df.pivot(
    index='group_row_id',
    columns='count',
    values=['orders', 'books']
)
# 拼接列名为你需要的 字段_分组值 格式
pivot_res.columns = [f'{field}_{group}' for field, group in pivot_res.columns]
# 移除临时生成的行序号列
final_res = pivot_res.reset_index(drop=True)

运行后得到的final_res输出完全匹配你的预期结果:

orders_1  orders_2  books_1  books_2
0        40        10        2        8
1        60        30        4       10
2        80        50        6       12

注意:该方法要求每个count分组下的记录数一致,和你给出的示例场景匹配;如果不同分组行数不一致,缺失的对应位置会自动填充为空值NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 22:39:24