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