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

如何将Python pandas groupby结果转换为指定格式的扁平化DataFrame

解决方法

你可以先给每个x分组内的元素生成序列编号,再通过透视表将纵向数值转为横向列,缺失值统一填充为0即可,实现代码如下:

import pandas as pd
df1 = pd.DataFrame( { 
    "x" : ["A", "B", "C", "A", "B" ,"B"] , 
    "y" : [ 1,   2,   3,   4,   5,   6]} )

# 给每个x分组内的行生成序号,从1开始匹配y1/y2/y3的后缀规则
df1['col_suffix'] = df1.groupby('x').cumcount() + 1

# 透视表转换,空值填0后转为整数类型
res = df1.pivot(index='x', columns='col_suffix', values='y').fillna(0).astype(int).reset_index()

# 重命名列名符合要求
res.columns = ['x'] + [f'y{i}' for i in res.columns[1:]]

print(res)

运行后输出结果和你期望的完全一致:

x  y1  y2  y3
0  A   1   4   0
1  B   2   5   6
2  C   3   0   0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:24:03