Jak znaleźć maksymalną wartość na grupę w pandas
Często możesz chcieć znaleźć maksymalną wartość na grupę w ramce danych pand.
Na szczęście można to łatwo zrobić, korzystając z funkcji groupby() i max() o następującej składni:
df. groupby (' column_name '). max ()
W tym samouczku wyjaśniono kilka przykładów praktycznego wykorzystania tej funkcji przy użyciu następującej ramki DataFrame pand:
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
Przykład 1: maksymalna wartość kilku kolumn pogrupowanych według zmiennej
Poniższy kod pokazuje, jak znaleźć maksymalną wartość wielu kolumn pogrupowanych według zmiennej w ramce 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
Z wyniku możemy zobaczyć, że:
- Zespół A może zdobyć maksymalnie 24 punkty i maksymalnie 11 zbiórek .
- Drużyna B może zdobyć maksymalnie 27 punktów i maksymalnie 7 zbiórek .
- Drużyna C może zdobyć maksymalnie 13 punktów i maksymalnie 12 zbiórek .
Zauważ, że użyliśmy funkcji reset_index() , aby upewnić się, że indeks jest zgodny z indeksem oryginalnej ramki DataFrame.
Przykład 2: Maksymalna wartość pojedynczej kolumny pogrupowanej według zmiennej
Poniższy kod pokazuje, jak znaleźć maksymalną wartość pojedynczej kolumny zgrupowanej według jednej zmiennej:
#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
Przykład 3: Sortuj według wartości maksymalnych
Do sortowania wartości maksymalnych możemy także użyć funkcji sort_values() .
Możemy określić rosnąco=Fałsz , aby posortować od największego do najmniejszego:
#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
Lub możemy określić rosnąco=True , aby posortować od najmniejszego do największego:
#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
Dodatkowe zasoby
Jak obliczyć sumę kolumn w Pandach
Jak obliczyć średnią kolumn w Pandach
Jak znaleźć maksymalną wartość kolumn w Pandach