Zo vind je bij pandas de maximale waarde per groep
Vaak wilt u misschien de maximale waarde per groep vinden in een Panda DataFrame.
Gelukkig is dit eenvoudig te doen met behulp van de functies groupby() en max() met de volgende syntaxis:
df. groupby (' column_name '). max ()
In deze tutorial worden verschillende voorbeelden uitgelegd van praktisch gebruik van deze functie met behulp van de volgende panda’s DataFrame:
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
Voorbeeld 1: maximale waarde van meerdere kolommen gegroepeerd op een variabele
De volgende code laat zien hoe u de maximale waarde van meerdere kolommen kunt vinden, gegroepeerd op een variabele in een 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
Uit het resultaat kunnen we zien dat:
- Team A heeft een maximale puntenwaarde van 24 en een maximale reboundswaarde van 11.
- Team B heeft een maximale puntenwaarde van 27 en een maximale reboundswaarde van 7.
- Team C heeft een maximale puntenwaarde van 13 en een maximale reboundswaarde van 12.
Houd er rekening mee dat we de functie reset_index() hebben gebruikt om ervoor te zorgen dat de index overeenkomt met de index van het oorspronkelijke DataFrame.
Voorbeeld 2: Maximale waarde van een enkele kolom gegroepeerd op een variabele
De volgende code laat zien hoe u de maximale waarde van een enkele kolom kunt vinden, gegroepeerd op een enkele variabele:
#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
Voorbeeld 3: Sorteren op maximale waarden
We kunnen ook de functie sort_values() gebruiken om de maximale waarden te sorteren.
We kunnen oplopend = False opgeven om van groot naar klein te sorteren:
#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
Of we kunnen oplopend=Waar opgeven om van klein naar groot te sorteren:
#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
Aanvullende bronnen
Hoe de som van kolommen in Panda’s te berekenen
Hoe het gemiddelde van kolommen in Panda’s te berekenen
Hoe u de maximale waarde van kolommen in Panda’s kunt vinden