Метод max
Метод max применяется к объекту GroupBy
и возвращает максимальные значения для каждого
столбца в каждой группе. В результате получается
таблица, где индексом выступают уникальные значения
групп, а столбцы содержат соответствующие максимумы.
Метод работает только с числовыми столбцами,
игнорируя нечисловые данные.
Синтаксис
df.groupby(by).max([numeric_only])
Пример
Создадим таблицу с данными о продажах и найдём максимальное значение для каждой категории:
import pandas as pd
df = pd.DataFrame({
'category': ['A', 'A', 'B', 'B', 'C'],
'value': [10, 15, 20, 25, 30],
'other': [100, 200, 300, 400, 500]
})
res = df.groupby('category').max()
print(res)
Результат выполнения кода:
value other
category
A 15 200
B 25 400
C 30 500
Пример
Используем параметр numeric_only для явного
указания работы только с числовыми столбцами:
import pandas as pd
df = pd.DataFrame({
'category': ['X', 'X', 'Y', 'Y'],
'value': [5, 8, 3, 7],
'text': ['a', 'b', 'c', 'd']
})
res = df.groupby('category').max(numeric_only=True)
print(res)
Результат выполнения кода:
value
category
X 8
Y 7
Пример
Рассмотрим группировку по нескольким столбцам для нахождения максимумов в каждой подгруппе:
import pandas as pd
df = pd.DataFrame({
'city': ['Moscow', 'Moscow', 'SPb', 'SPb', 'Kazan'],
'product': ['A', 'B', 'A', 'B', 'A'],
'sales': [100, 150, 200, 250, 300],
'profit': [10, 20, 30, 40, 50]
})
res = df.groupby(['city', 'product']).max()
print(res)
Результат выполнения кода:
sales profit
city product
Kazan A 300 50
Moscow A 100 10
B 150 20
SPb A 200 30
B 250 40