Панди: як розрахувати відсоток від загальної кількості в групі


Ви можете використовувати такий синтаксис, щоб обчислити відсоток від загальної суми в групах panda:

 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% від загальної кількості очок команди A.

Подібним чином гравець у другому рядку DataFrame, який набрав 29 очок, набрав 29/99 = 29,29% від загальної кількості очок команди A.

І так далі.

Примітка . Повну документацію щодо функції GroupBy можна знайти тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *