希望按组获得差异

2024-09-29 17:15:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据集(ppf)如下所示:

^{tb1}$

我希望每个赛季每个球员的得分和篮板都有所不同,然后在赛季结束时让球员和赛季回归

期望输出:

^{tb2}$

我将球员ID和赛季列名称存储在标识符中,统计名称存储在cumstats_cols中。我尝试了以下方法:

ppfs = ppf[identifiers + cumstats_cols].sort_values(['playerid','season']).groupby(['playerid'])[cumstats_cols].diff().reset_index()

但我无法判断它是否正常工作,因为它不会返回球员ID和赛季以及差异

谢谢你的帮助

编辑 我希望保留原始表,而是将差异存储在其他列中


Tags: 数据方法名称id标识符差异cols球员
2条回答

让我们试试:

# sort the values
df.sort_values(['playerid','season'], inplace=True)

# group
df[['playerid','season']].join(df.groupby(['playerid'])
                                 [['points', 'rebounds']].diff()
                              )

输出:

   playerid   season  points  rebounds
0      1234  2009-10     NaN       NaN
1      1234  2010-11    33.0      27.0
2      2345  2009-10     NaN       NaN
3      2345  2010-11    24.0      17.0

使用:

new_df = df.assign(**df.groupby('playerid', sort=False)[['points', 'rebounds']].diff())
print(new_df)

   playerid   season  points  rebounds
0      1234  2009-10     NaN       NaN
1      1234  2010-11    33.0      27.0
2      2345  2009-10     NaN       NaN
3      2345  2010-11    24.0      17.0

相关问题 更多 >

    热门问题