首页 > 解决方案 > 如何基于 GroupyBy 对象创建一个新的数据框列?

问题描述

df=pd.DataFrame({'Name':['a','a','b','b','b','c'], 'Score':[4,6,8,12,34,66]})

给出 df 在此处输入图像描述

我想按如下方式获取我的数据框:

在此处输入图像描述

我尝试从使用 groupie 开始

df.groupby('Name')

这当然给了我一个 groupby 对象。我想我需要对 groupby 对象的每一组进行某种旋转?

标签: pythonpython-3.xpandaspandas-groupby

解决方案


您可以使用:

df['Column'] = 'Score' + df.groupby('Name').cumcount().astype(str)

(df.pivot(index='Name', columns='Column', values='Score')
   .reset_index()
   .rename_axis(columns=None)
   .rename(columns={"Score0": "Score"})
)

输出:

  Name  Score  Score1  Score2
0    a    4.0     6.0     NaN
1    b    8.0    12.0    34.0
2    c   66.0     NaN     NaN

推荐阅读