← Назад к вопросам
Что такое агрегирующая функция agg в Python?
1.0 Junior🔥 151 комментариев
#Python и инструменты
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Агрегирующая функция agg() в Python
Определение
agg() (aggregate) — это метод в pandas для применения одной или нескольких функций агрегирования к DataFrame или групповым данным. Это мощный инструмент для преобразования, сокращения и анализа данных.
Основные применения
agg() чаще всего используется с groupby() для расчёта метрик по группам:
import pandas as pd
df = pd.DataFrame({
"категория": ["A", "A", "B", "B", "C"],
"продажи": [100, 150, 200, 180, 90]
})
# Сумма продаж по категориям
result = df.groupby("категория")["продажи"].agg("sum")
# A 250
# B 380
# C 90
Использование нескольких функций
# Несколько агрегирующих функций за раз
result = df.groupby("категория")["продажи"].agg(["sum", "mean", "count", "max"])
Результат:
sum mean count max
категория
A 250 125.0 2 150
B 380 190.0 2 200
C 90 90.0 1 90
Именованные агрегации
# С кастомными названиями колонок
result = df.groupby("категория")["продажи"].agg(
total_sales="sum",
avg_sales="mean",
max_sales="max"
)
Применение к нескольким колонкам
df = pd.DataFrame({
"категория": ["A", "A", "B", "B"],
"продажи": [100, 150, 200, 180],
"количество": [2, 3, 5, 4]
})
result = df.groupby("категория").agg({
"продажи": "sum",
"количество": "mean"
})
Кастомные функции
# Применение lambda или собственной функции
result = df.groupby("категория")["продажи"].agg(
lambda x: x.max() - x.min() # размах (макс - мин)
)
Основные агрегирующие функции
- sum() — сумма
- mean() — среднее значение
- median() — медиана
- count() — количество (исключая NaN)
- max() / min() — максимум/минимум
- std() / var() — стандартное отклонение/дисперсия
- first() / last() — первое/последнее значение
Практическое применение для Product Analyst
Сценарий 1: Анализ метрик по сегментам
df.groupby("user_segment")["transaction_value"].agg([
("total_revenue", "sum"),
("avg_order", "mean"),
("user_count", "count")
])
Сценарий 2: Когортный анализ
df.groupby(["cohort_month", "status"]).agg({
"user_id": "nunique",
"lifetime_value": "mean"
})
Производительность
agg() работает быстро благодаря оптимизированной C-реализации в pandas. Для больших датасетов это предпочтительнее, чем применение функций в цикле.
Итого: agg() — это универсальный инструмент для расчёта итоговых метрик по группам данных, незаменимый для анализа и reporting.