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


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

К счастью, это легко сделать с помощью функций groupby() и max() со следующим синтаксисом:

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

В этом руководстве объясняется несколько примеров практического использования этой функции с использованием следующего DataFrame pandas:

 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.
  • Команда Б имеет максимальное количество очков 27 и максимальное значение подборов 7.
  • Команда C имеет максимальное количество очков 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() для сортировки максимальных значений.

Мы можем указать возрастание = 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

Или мы можем указать возрастание=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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *