【发布时间】:2021-11-02 21:03:03
【问题描述】:
我有一个如下所示的 df。
df:
Country Player
Arg Messi
Bra Neymar
Arg NaN
Arg Messi
Arg Aguero
Arg Messi
Bra Ronaldo
Spain Xavi
Spain NaN
Spain NaN
Bra Rivaldo
Spain Iniesta
Bra NaN
Spain Xavi
其中 NaN 代表不可用的信息。 从上面的df中,我想执行多个groupby计数,如下所示。
预期输出:
Country Player Counts Percentage_of_country
Arg NaN 1 20
Arg Messi 3 60
Arg Aguero 1 20
Bra Neymar 1 25
Bra NaN 1 25
Bra Ronaldo 1 25
Bra Rivaldo 1 25
Spain NaN 2 40
Spain Xavi 2 40
Spain Iniesta 1 20
我试过下面的代码:
df2 = df.groupby(['Country', 'Player']).size().reset_index(name='counts')
df2['prcntg'] = df2['counts']/df2.groupby('Country')['counts'].transform('sum')
df2
【问题讨论】:
-
@Corralien,如果分组是单级的,该解决方案可能会奏效。
-
看到这篇文章有点晚了。你也可以看看我的解决方案。
标签: python python-3.x pandas dataframe pandas-groupby