Панды: как посчитать процент от суммы внутри группы


Вы можете использовать следующий синтаксис для расчета процента от общей суммы в группах панд:

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

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: вычисление процента от общей суммы внутри группы

Предположим, у нас есть следующий DataFrame pandas, который показывает очки, набранные баскетболистами из разных команд:

 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 указывает процент от общего количества очков, набранных этим игроком в своей команде.

Например, игроки команды А набрали в общей сложности 99 очков.

Таким образом, игрок в первой строке DataFrame, набравший 12 очков, набрал в общей сложности 12/99 = 12,12% от общего количества очков команды А.

Аналогично, игрок во второй строке DataFrame, набравший 29 очков, набрал в общей сложности 29/99 = 29,29% от общего количества очков команды А.

И так далее.

Примечание . Полную документацию по функции GroupBy можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Панды: как посчитать совокупную сумму на группу
Панды: как посчитать уникальные значения по группам
Панды: как рассчитать режим по группе
Панды: как рассчитать корреляцию по группам

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *