Ответ вслух Junior groupby и агрегаты спрашивают часто обновлено

Как работает groupby в pandas

Вопрос

Расскажите, как работает groupby в pandas и какие у него есть режимы.

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

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

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

Коротко

groupby работает по схеме split-apply-combine: делит строки на группы по ключу, применяет функцию к каждой группе и склеивает результат. Режимов три. agg сворачивает группу в одно значение: сумма, среднее, число уникальных.

Что должно прозвучать в ответе

  • Схема split-apply-combine

  • `agg` сворачивает группу в одно значение, именованная агрегация

  • `transform` возвращает результат формы исходной таблицы

  • `filter` оставляет группы целиком по условию

  • Ключ уходит в индекс, `as_index=False` или `reset_index`

  • NaN в ключе по умолчанию выпадает

Что могут спросить следом

  • Чем size отличается от count?
  • Когда без apply не обойтись?
  • Как посчитать долю строки от суммы её группы?

Разбор

groupby работает по схеме split-apply-combine: делит строки на группы по ключу, применяет функцию к каждой группе и склеивает результат. Режимов три. agg сворачивает группу в одно значение: сумма, среднее, число уникальных. Удобнее всего именованная агрегация revenue=("amount", "sum"), она даёт плоские колонки. transform возвращает значение на каждую исходную строку, поэтому подходит, чтобы добавить колонку с суммой группы или долей. filter оставляет или выкидывает группы целиком, например клиентов с тремя и более заказами. Ключи по умолчанию уходят в индекс, это лечится as_index=False. Строки с NaN в ключе по умолчанию выпадают, для них есть dropna=False. Для скорости предпочитаю встроенные агрегаты, apply беру в последнюю очередь.

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

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

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