Выбор ответа Middle groupby и агрегаты спрашивают часто обновлено

Именованная агрегация в pandas

Вопрос

Что получится после кода?

df.groupby('city').agg(
    revenue=('amount', 'sum'),
    users=('user', 'nunique'),
)

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: DataFrame с индексом city и колонками revenue и users. Именованная агрегация имя=(колонка, функция) даёт плоские колонки с заданными именами, а ключ по умолчанию уходит в индекс.

Варианты ответа

  1. DataFrame с MultiIndex в колонках (amount, sum) и (user, nunique)
  2. DataFrame с индексом city и колонками revenue и usersправильный ответ
  3. Series с двумя уровнями индекса
  4. Ошибка: в agg нельзя передавать кортежи

Разбор

Именованная агрегация имя=(колонка, функция) даёт плоские колонки с заданными именами, а ключ по умолчанию уходит в индекс. MultiIndex в колонках получается при старом стиле agg({"amount": ["sum"]}). Кортежи в agg разрешены как раз для этого синтаксиса.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме