Pandy: jak obliczyć procent całości w grupie


Możesz użyć następującej składni, aby obliczyć procent sumy w grupach pand:

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

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Oblicz procent całości w grupie

Załóżmy, że mamy następującą ramkę danych pand, która pokazuje punkty zdobyte przez koszykarzy z różnych drużyn:

 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

Możemy użyć następującej składni, aby utworzyć nową kolumnę w DataFrame, która wyświetla procent wszystkich zdobytych punktów, pogrupowanych według drużyn:

 #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

Kolumna team_percent wskazuje procent wszystkich punktów zdobytych przez tego gracza w jego drużynie.

Na przykład gracze Drużyny A zdobyli łącznie 99 punktów.

Zatem gracz w pierwszym rzędzie ramki DataFrame, który zdobył 12 punktów, zdobył w sumie 12/99 = 12,12% całkowitej liczby punktów Drużyny A.

Podobnie gracz w drugim rzędzie ramki DataFrame, który zdobył 29 punktów, uzyskał w sumie 29/99 = 29,29% całkowitej liczby punktów Drużyny A.

I tak dalej.

Uwaga : pełną dokumentację funkcji GroupBy znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Pandy: jak obliczyć skumulowaną sumę na grupę
Pandy: jak liczyć unikalne wartości według grupy
Pandy: jak obliczyć tryb według grupy
Pandy: jak obliczyć korelację według grup

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *