Pandy: jak korzystać z groupby z liczbą pojemników


Możesz użyć następującej składni, aby obliczyć liczbę pól zmiennej pogrupowanej według innej zmiennej w pandach:

 #define bins
groups = df. groupby ([' group_var ', pd. cut (df. value_var , bins)])

#display bin count by group variable
groups. size (). unstack ()

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

Przykład: użyj GroupBy z liczbą pojemników w Pandach

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', 'A', 'A', 'A',
                            'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [4, 7, 7, 11, 12, 15, 19, 19,
                             5, 5, 11, 12, 14, 14, 15, 15]})

#view DataFrame
print (df)

   team points
0 to 4
1 to 7
2 to 7
3 to 11
4 to 12
5 to 15
6 to 19
7 to 19
8 B 5
9 B 5
10 B 11
11 B 12
12 B 14
13 B 14
14 B 15
15 B 15

Aby obliczyć częstotliwość punktów dla każdej drużyny, pogrupowanych w określone koszyki, możemy zastosować następującą składnię:

 #define groups
groups = df. groupby ([' team ', pd. cut (df. points , [0, 10, 15, 20])])

#display bin count grouped by team
groups. size (). unstack ()

points (0, 10] (10, 15] (15, 20]
  team			
     A 3 3 2
     B 2 6 0

Oto jak zinterpretować wynik:

  • W sumie 3 zawodników drużyny A zdobyło od 0 do 10 punktów.
  • W sumie 3 zawodników drużyny A zdobyło od 10 do 15 punktów.
  • W sumie 2 zawodników drużyny A zdobyło od 15 do 20 punktów.

I tak dalej.

Zauważ, że możemy określić, które pojemniki chcemy, za pomocą funkcji pd.cut() .

Na przykład moglibyśmy zdefiniować tylko dwa pojemniki:

 #define groups
groups = df. groupby ([' team ', pd. cut (df. points , [0, 10, 20])])

#display bin count grouped by team
groups. size (). unstack ()

points (0, 10] (10, 20]
  team		
     At 3 5
     B 2 6

Oto jak zinterpretować wynik:

  • W sumie 3 zawodników drużyny A zdobyło od 0 do 10 punktów.
  • W sumie 5 zawodników Drużyny A zdobyło od 10 do 20 punktów.
  • W sumie 2 zawodników drużyny B zdobyło od 0 do 10 punktów.
  • Łącznie 6 zawodników Drużyny B zdobyło od 10 do 20 punktów.

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

Uwaga 2 : Pełną dokumentację funkcji wycinania można znaleźć 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 *