Як знайти максимальне значення для групи в pandas


Часто вам може знадобитися знайти максимальне значення для групи в pandas DataFrame.

На щастя, це легко зробити за допомогою функцій groupby() і max() із таким синтаксисом:

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

У цьому підручнику пояснюється кілька прикладів практичного використання цієї функції з використанням таких pandas 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

Приклад 1: максимальне значення кількох стовпців, згрупованих за змінною

Наступний код показує, як знайти максимальне значення кількох стовпців, згрупованих за змінною в 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

З результату ми бачимо, що:

  • Команда А має максимальну кількість очок 24 і максимальну кількість підбирань 11.
  • Команда B має максимальне значення очок 27 і максимальне значення підбирань 7.
  • Команда С має максимальне значення очок 13 і максимальне значення підбирань 12.

Зверніть увагу, що ми використовували функцію reset_index() , щоб переконатися, що індекс збігається з індексом оригінального DataFrame.

Приклад 2: максимальне значення одного стовпця, згрупованого за змінною

Наступний код показує, як знайти максимальне значення одного стовпця, згрупованого в одній змінній:

 #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

Приклад 3: Сортування за максимальними значеннями

Ми також можемо використовувати функцію sort_values() для сортування максимальних значень.

Ми можемо вказати ascending=False для сортування від найбільшого до найменшого:

 #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

Або ми можемо вказати ascending=True для сортування від найменшого до найбільшого:

 #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

Додаткові ресурси

Як обчислити суму стовпців у Pandas
Як обчислити середнє значення стовпців у Pandas
Як знайти максимальне значення стовпців у Pandas

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *