Функция resample() в pandas: группировка по времени

df.resample(частота) группирует данные с datetime-индексом по временным интервалам — день (D), неделя (W), месяц (ME) — и считает по ним агрегат. Это специализированный groupby для времени: выручка по месяцам, DAU по неделям, даунсэмплинг секундных логов в минутные. Требует datetime-индекс.

Синтаксис

df.set_index('dt').resample('ME')['amount'].sum()

Примеры использования

Пример 1: Выручка по месяцам

df.set_index('dt').resample('ME')['amount'].sum()

Результат:

dt
2026-06-30    45000
2026-07-31    52000

Пример 2: Уникальные пользователи по неделям

df.set_index('dt').resample('W')['user_id'].nunique()

Результат:

dt
2026-06-07    1240
2026-06-14    1310
Порешать Python-задачи в тренажёре →

Типичная ошибка

resample работает ТОЛЬКО с datetime-индексом — сначала set_index или передай on='колонка'. Коды частоты в pandas 2.x изменились: 'M' устарел, теперь 'ME' (month end), 'MS' (month start); 'W' — воскресенье-конец, 'W-MON' — понедельник. Пустые периоды resample сохраняет (в отличие от groupby) — заполнит их NaN, что удобно для непрерывного ряда.

Где спрашивают на собеседовании

resample — ключевой инструмент временных рядов, спрашивают «сгруппируй метрику по неделям/месяцам». Ценят знание, что нужен datetime-индекс, актуальные коды частоты (ME вместо M) и разницу с groupby (resample достраивает пустые периоды).

FAQ: частые вопросы про resample

Чем resample отличается от groupby?

resample — это groupby по временным интервалам с datetime-индексом. Отличие: resample сохраняет пустые периоды (заполняя NaN), что даёт непрерывный ряд, а groupby по дате их пропустит.

Какие коды частоты в resample?

D — день, W — неделя, ME — конец месяца, MS — начало месяца, QE — квартал, YE — год, H — час. В pandas 2.x старые M/Q/Y заменены на ME/QE/YE.

Почему resample выдаёт ошибку?

Скорее всего нет datetime-индекса. Сделай df.set_index('дата') с datetime-колонкой или передай on='дата' прямо в resample.

Задачи в тренажёре по теме

Вопросы с собеседований по теме

Смежные темы Python

Pandas: временные ряды

Другие функции pandas

to_datetime · rolling · shift · diff · pct_change · merge_asof

Открыть Python-тренажёр (556 задач) →