Как найти максимальное значение для группы в 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