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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *