Разбираем groupby в pandas по-человечески: механика split-apply-combine, agg и named aggregation, transform vs agg, filter, apply на группу, pivot_table и cross
Это часть 8 из 10 курса «Pandas с нуля для аналитика».
Если ты умеешь группировать данные — ты умеешь отвечать на 80% вопросов бизнеса. «Сколько мы заработали по каждому городу?», «Кто наш топ-продавец?», «Какая доля выручки идёт из мобилки?» — всё это groupby. Это самый рабочий инструмент аналитика после фильтрации, и сегодня мы разберём его так, чтобы ты не путался между agg, transform и apply никогда.
Используйте groupby с агрегирующей функцией: df.groupby('city')['sales'].sum() или .mean(), .count(). Для нескольких метрик сразу применяют agg: df.groupby('city')['sales'].agg(['sum','mean','count']).
groupby агрегирует в длинном формате (одна колонка с группами), а pivot_table раскладывает агрегаты в матрицу: строки по index, колонки по columns, значения по values с функцией aggfunc. pivot_table удобнее для кросс-таблиц вида город × месяц.
Передайте в agg словарь: df.groupby('city').agg({'sales':'sum', 'orders':'count', 'price':'mean'}). Для именованных колонок используйте named aggregation: agg(total=('sales','sum'), avg=('price','mean')).