Pandy: jak korzystać z warunku group by i where


Najłatwiejszym sposobem użycia grupy według z warunkiem Where w pandach jest użycie funkcji query() :

 df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()

Ten konkretny przykład oblicza średnią wartość punktów pogrupowanych według pozycji , gdzie zespół jest równy „A” w niektórych pandach DataFrame.

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

Przykład: Jak korzystać z warunku Grupuj według z warunkiem Where w Pandach

Załóżmy, że mamy następującą ramkę danych pand, która zawiera informacje o różnych koszykarzach:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'F'],
                   ' points ': [22, 14, 15, 10, 8, 29, 33, 18]})

#view DataFrame
print (df)

  team position points
0 AG 22
1 AG 14
2 AF15
3 AF 10
4 AF 8
5 BG 29
6 BG 33
7 BF 18

Możemy użyć poniższego kodu do obliczenia średniej wartości punktów , pogrupowanych według pozycji , gdzie drużyna równa się „A”:

 #calculate mean value of points, grouped by position, where team == 'A'
df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()

        position points
0 F 11.0
1G 18.0

Z wyniku możemy zobaczyć:

  • Średnia wartość punktów zawodników na pozycji „F” w drużynie A wynosi 11 .
  • Średnia wartość punktowa zawodników na pozycji „G” Drużyny A wynosi 18 .

Pamiętaj, że możemy również użyć operatora & w funkcji query() , aby znaleźć wiersze, w których spełnionych jest wiele warunków.

Na przykład poniższy kod pokazuje, jak obliczyć średnią wartość punktową , pogrupowaną według pozycji , gdzie drużyna równa się „A” , a pozycja równa się „G”:

 #calculate mean value of points by position where team is 'A' and position is 'G'
df. query (" team=='A' & position=='G' "). groupby ([" position "])[" points "]. mean (). reset_index ()

	position points
0G 18.0

Z wyniku widzimy, że średnia wartość punktowa zawodników na pozycji „G” w drużynie A wynosi 18 .

Ponieważ w funkcji query() określiliśmy dwa warunki, użyte zostały tylko wiersze spełniające oba warunki.

Dodatkowe zasoby

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

Jak wykonać sumę GroupBy w Pandach
Jak korzystać z Groupby i Plot w Pandach
Jak liczyć unikalne wartości za pomocą GroupBy w Pandach

Dodaj komentarz

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