Как выполнить группировку и агрегацию данных в Pandas

Ответ

Группировка и агрегация данных в Pandas — это ключевая операция для анализа, выполняемая с помощью метода .groupby(). Он работает по принципу Split-Apply-Combine:

  1. Split: Данные разделяются на группы на основе значений в указанном столбце (или нескольких столбцах).
  2. Apply: К каждой группе применяется функция агрегации (например, sum(), mean(), count()).
  3. 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() позволяет применять сразу несколько функций, что делает код компактным и читаемым.