Ответ
Группировка и агрегация данных в Pandas — это ключевая операция для анализа, выполняемая с помощью метода .groupby()
. Он работает по принципу Split-Apply-Combine:
- Split: Данные разделяются на группы на основе значений в указанном столбце (или нескольких столбцах).
- Apply: К каждой группе применяется функция агрегации (например,
sum()
,mean()
,count()
). - Combine: Результаты объединяются в новую структуру данных (обычно DataFrame или Series).
Практический пример:
Предположим, у нас есть DataFrame с данными о продажах в разных отделах:
import pandas as pd
data = {
'department': ['Sales', 'IT', 'Sales', 'IT', 'IT'],
'employee': ['John', 'Anna', 'Peter', 'Linda', 'Mike'],
'sales': [200, 150, 300, 100, 250]
}
df = pd.DataFrame(data)
Задача: Посчитать общую сумму продаж и количество сотрудников для каждого отдела.
# Группируем данные по столбцу 'department'
# Применяем агрегирующие функции к столбцу 'sales'
agg_result = df.groupby('department')['sales'].agg(['sum', 'count'])
print(agg_result)
Результат выполнения:
sum count
department
IT 500 3
Sales 500 2
Этот результат показывает, что в отделе IT было 3 продажи на общую сумму 500, а в отделе Sales — 2 продажи на ту же сумму. Метод .agg()
позволяет применять сразу несколько функций, что делает код компактным и читаемым.