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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *