Выбор ответа Middle Даты и время спрашивают часто обновлено

resample против groupby по дате

Вопрос

Чем df.resample("D", on="ts")["amount"].sum() отличается от df.groupby(df["ts"].dt.date)["amount"].sum()?

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

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

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

Коротко

Правильный ответ: resample создаёт все дни диапазона (пустые с 0), groupby только дни со строками. resample строит сетку периодов от минимума до максимума, поэтому дни без событий появляются с нулём (для суммы) или NaN (для среднего). groupby по дате знает только встретившиеся значения.

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

  1. resample создаёт все дни диапазона (пустые с 0), groupby только дни со строкамиправильный ответ
  2. Ничем: это синонимы, и результат совпадает до последней строки и порядка индекса
  3. groupby быстрее и сам учитывает часовой пояс колонки при выделении даты из ts
  4. resample работает только с индексом и не принимает параметр on

Разбор

resample строит сетку периодов от минимума до максимума, поэтому дни без событий появляются с нулём (для суммы) или NaN (для среднего). groupby по дате знает только встретившиеся значения. Часовые пояса обрабатываются одинаково, а on= у resample есть.

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

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

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