计算分组数据框中的总和

2024-03-28 03:25:17 发布

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

我需要表示数据中每一行所占的百分比。诀窍是我需要一个groupby调用中父分组绑定的百分比。我的DF现在看起来像这样:

category    Segment     Pageviews
Sitting     Age 25-34   2268
            Age 35-44   2942
            Age 45-53   2209
            Age 55+     3317
Standing    Age 25-34   2193
            Age 35-44   1664
            Age 45-53   1874
            Age 55+     1647
Kneeling    Age 25-34   680
            Age 35-44   494
            Age 45-53   876
            Age 55+     1489

我希望达到的是每个年龄段的坐姿、站姿和跪姿各占一个百分点。你知道吗

category    Segment     Pageviews  Percentage
Sitting     Age 25-34   2268       21%
            Age 35-44   2942       27%
            Age 45-53   2209       20%
            Age 55+     3317       31%
Standing    Age 25-34   2193       ...
            Age 35-44   1664       ... 
            Age 45-53   1874       ...
            Age 55+     1647
Kneeling    Age 25-34   680
            Age 35-44   494
            Age 45-53   876
            Age 55+     1489

Tags: 数据dfagesegment百分比groupbycategorypageviews
1条回答
网友
1楼 · 发布于 2024-03-28 03:25:17

您可以使用:

>>> df['Percentage'] = df.groupby('category')['Pageviews']\
                         .apply(lambda g: 100*g / g.sum())

    category   Segment  Pageviews  Percentage
0    Sitting  Age25-34       2268   21.125186
1    Sitting  Age35-44       2942   27.403130
2    Sitting  Age45-53       2209   20.575633
3    Sitting    Age55+       3317   30.896051
4   Standing  Age25-34       2193   29.723502
5   Standing  Age35-44       1664   22.553538
6   Standing  Age45-53       1874   25.399837
7   Standing    Age55+       1647   22.323123
8   Kneeling  Age25-34        680   19.214467
9   Kneeling  Age35-44        494   13.958745
10  Kneeling  Age45-53        876   24.752755
11  Kneeling    Age55+       1489   42.074032

相关问题 更多 >