Pandas:如何计算组内总数的百分比


您可以使用以下语法来计算 panda 组内总数的百分比:

 df[' values_var '] / df. groupby (' group_var ')[' values_var ']. transform (' sum ')

以下示例展示了如何在实践中使用此语法。

示例:计算组内总数的百分比

假设我们有以下 pandas DataFrame,显示来自不同球队的篮球运动员的得分:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [12, 29, 34, 14, 10, 11, 7, 36, 34, 22]})

#view DataFrame
print (df)

  team points
0 to 12
1 to 29
2 to 34
3 to 14
4 to 10
5 B 11
6 B 7
7 B 36
8 B 34
9 B 22

我们可以使用以下语法在 DataFrame 中创建一个新列,显示按团队分组的总得分百分比:

 #calculate percentage of total points scored grouped by team
df[' team_percent '] = df[' points '] / df. groupby (' team ')[' points ']. transform (' sum ')

#view updated DataFrame
print (df)

  team points team_percent
0 A 12 0.121212
1 A 29 0.292929
2 A 34 0.343434
3 A 14 0.141414
4 A 10 0.101010
5 B 11 0.100000
6 B 7 0.063636
7 B 36 0.327273
8 B 34 0.309091
9 B 22 0.200000

team_percent列表示该球员在其球队中得分占总得分的百分比。

例如,A队队员的总分是99分。

因此,DataFrame 第一排获得12分的玩家总共得分为 A 队总得分的 12/99 = 12.12%

同样,DataFrame 中第二排得29分的选手的得分总计为 29/99 = A 队总分的29.29%

等等。

注意:您可以在此处找到GroupBy函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

Pandas:如何计算每组的累计和
Pandas:如何按组计算唯一值
Pandas:如何按组计算众数
Pandas:如何按组计算相关性

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注