← Назад к вопросам

Что такое агрегирующая функция 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.

Что такое агрегирующая функция agg в Python? | PrepBro