Panda: come utilizzare raggruppa per con la condizione dove
Il modo più semplice per utilizzare group by con una condizione Where in panda è utilizzare la funzione query() :
df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()
Questo particolare esempio calcola il valore medio dei punti , raggruppati per posizione , dove la squadra è uguale ad “A” in alcuni DataFrame panda.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: come utilizzare Raggruppa per con la condizione Dove in Panda
Supponiamo di avere il seguente DataFrame panda che contiene informazioni su vari giocatori di basket:
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
Possiamo utilizzare il seguente codice per calcolare il valore del punto medio, raggruppato per posizione , dove la squadra è uguale ad “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
Dal risultato possiamo vedere:
- Il valore medio dei punti per i giocatori nella posizione “F” della squadra A è 11 .
- Il valore medio del punto per i giocatori nella posizione “G” della Squadra A è 18 .
Tieni presente che possiamo anche utilizzare l’operatore & nella funzione query() per trovare righe in cui sono soddisfatte più condizioni.
Ad esempio, il codice seguente mostra come calcolare il valore del punto medio, raggruppato per posizione , dove la squadra è uguale ad “A” e la posizione è uguale a “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
Dal risultato, possiamo vedere che il valore medio dei punti per i giocatori in posizione “G” nella squadra A è 18 .
Poiché abbiamo specificato due condizioni nella funzione query() , sono state utilizzate solo le righe che soddisfacevano entrambe le condizioni.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:
Come eseguire una somma GroupBy in Pandas
Come utilizzare Groupby e Plot in Pandas
Come contare valori univoci utilizzando GroupBy in Pandas