Come trovare il valore massimo per gruppo su pandas


Spesso potresti voler trovare il valore massimo per gruppo in un DataFrame panda.

Fortunatamente, questo è facile da fare utilizzando le funzioni groupby() e max() con la seguente sintassi:

 df. groupby (' column_name '). max ()

Questo tutorial spiega diversi esempi di utilizzo pratico di questa funzione utilizzando i seguenti DataFrame panda:

 import pandas as pd

#create pandas DataFrame
df = pd. DataFrame ({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   'points':[24, 23, 27, 11, 14, 8, 13],
                   'rebounds': [11, 8, 7, 6, 6, 5, 12]})

#display DataFrame
print (df)

  team points rebounds
0 to 24 11
1 to 23 8
2 B 27 7
3 B 11 6
4 B 14 6
5 C 8 5
6 C 13 12

Esempio 1: valore massimo di più colonne raggruppate per una variabile

Il codice seguente mostra come trovare il valore massimo di più colonne, raggruppate da una variabile in un DataFrame:

 #find max values of points and rebounds, grouped by team
df. groupby (' team '). max (). reset_index ()


        team points rebounds
0 to 24 11
1 B 27 7
2 C 13 12

Dal risultato possiamo vedere che:

  • La squadra A ha un valore massimo di punti pari a 24 e un valore massimo di rimbalzi pari a 11.
  • La squadra B ha un valore massimo di punti pari a 27 e un valore massimo di rimbalzi pari a 7.
  • La squadra C ha un valore massimo di punti di 13 e un valore massimo di rimbalzi di 12.

Tieni presente che abbiamo utilizzato la funzione reset_index() per garantire che l’indice corrisponda all’indice del DataFrame originale.

Esempio 2: Valore massimo di una singola colonna raggruppata per una variabile

Il codice seguente mostra come trovare il valore massimo di una singola colonna, raggruppata su un’unica variabile:

 #find max value of points, grouped by team
df. groupby (' team ')[' points ']. max (). reset_index ()

        team points
0 to 24
1 B 27
2 C 13

Esempio 3: ordinamento per valori massimi

Possiamo anche usare la funzione sort_values() per ordinare i valori massimi.

Possiamo specificare ascending=False per ordinare dal più grande al più piccolo:

 #find max value by team, sort descending
df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= False )


        team points
1 B 27
0 to 24
2 C 13

Oppure possiamo specificare ascending=True per ordinare dal più piccolo al più grande:

 #find max value by team, sort ascending 
df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= True ) 

        team points
2 C 13
0 to 24
1 B 27

Risorse addizionali

Come calcolare la somma delle colonne in Pandas
Come calcolare la media delle colonne in Pandas
Come trovare il valore massimo delle colonne in Pandas

Aggiungi un commento

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