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