Выбор ответа Middle groupby и агрегаты спрашивают часто обновлено
Именованная агрегация в pandas
Вопрос
Что получится после кода?
df.groupby('city').agg(
revenue=('amount', 'sum'),
users=('user', 'nunique'),
)
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: DataFrame с индексом city и колонками revenue и users. Именованная агрегация имя=(колонка, функция) даёт плоские колонки с заданными именами, а ключ по умолчанию уходит в индекс.
Варианты ответа
- DataFrame с MultiIndex в колонках
(amount, sum)и(user, nunique) - DataFrame с индексом
cityи колонкамиrevenueиusersправильный ответ - Series с двумя уровнями индекса
- Ошибка: в
aggнельзя передавать кортежи
Разбор
Именованная агрегация имя=(колонка, функция) даёт плоские колонки с заданными именами, а ключ по умолчанию уходит в индекс. MultiIndex в колонках получается при старом стиле agg({"amount": ["sum"]}). Кортежи в agg разрешены как раз для этого синтаксиса.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «groupby и агрегаты»
- groupby: agg или transform
- Почему groupby.apply медленный
- as_index=False в groupby
- Отбор клиентов по условиям на группу
- Выручка и число клиентов по городам на pandas
- Доля заказа в выручке города: transform
- Топ-N заказов в каждом городе на pandas
- dropna=False в groupby