Временные ряды в Pandas
DatetimeIndex, resample(), rolling(), shift(), создание диапазонов дат и изменение частоты выборки.
«Временные ряды в Pandas» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Время в pandas
pandas имеет встроенную поддержку дат и времени. Преобразование строк в метки времени и индексация по времени открывают доступ к изменению частоты, скользящим окнам и признакам запаздывания.
Разбор с помощью to_datetime
pd.to_datetime преобразует строки или числа в полноценные объекты меток времени, автоматически определяя большинство распространённых форматов.
import pandas as pd
d = pd.to_datetime(["2026-01-01", "2026-01-05", "2026-02-10"])
print(d)
print(d.dtype) # datetime64[ns]Создание дат с помощью date_range
pd.date_range создаёт равномерно расположенную последовательность меток времени. Код freq задаёт шаг: D — дни, H — часы, M — конец месяца и так далее.
rng = pd.date_range("2026-01-01", periods=5, freq="D")
print(rng)
# 2026-01-01 ... 2026-01-05Создание DatetimeIndex
Установка столбца с датами и временем в качестве индекса создаёт DatetimeIndex, который включает выборку с учётом времени и инструменты изменения частоты и скользящих вычислений.
ts = pd.Series([10, 12, 9, 15, 11],
index=pd.date_range("2026-01-01", periods=5, freq="D"))
print(ts)Выборка по неполной строке даты
С DatetimeIndex можно выполнять выборку по неполным датам: строка с годом или месяцем выбирает все соответствующие строки.
monthly = pd.Series(range(60),
index=pd.date_range("2026-01-01", periods=60, freq="D"))
print(monthly["2026-02"].head()) # all of FebruaryИзменение частоты с помощью resample
resample — это группировка по времени. Понижайте частоту до более крупной, а затем выполняйте агрегацию, например преобразуйте дневные данные в недельные суммы.
weekly = monthly.resample("W").sum()
print(weekly.head())Повышение частоты и заполнение
Повышение частоты до FINER создаёт пропуски. Объедините его с .ffill(), чтобы протянуть последнее значение вперёд.
hourly = ts.resample("12H").ffill()
print(hourly.head())Скользящие окна
rolling(window) вычисляет статистику по скользящему окну — основу скользящих средних, сглаживающих зашумлённые ряды.
roll = monthly.rolling(window=7).mean()
print(roll.head(10)) # first 6 are NaN (not enough history)Варианты скользящих вычислений
В скользящем окне работает любая операция свёртки: mean, sum, std, минимум и максимум. Скользящее стандартное отклонение за 7 дней измеряет недавнюю волатильность.
vol = monthly.rolling(7).std()
print(vol.tail())Добавление запаздывания с помощью shift
shift(n) сдвигает значения вперёд на n периодов, создавая признаки запаздывания и позволяя вычислять изменения от периода к периоду.
df = pd.DataFrame({"sales": [100, 110, 105, 130]})
df["prev"] = df["sales"].shift(1)
df["pct_change"] = (df["sales"] - df["prev"]) / df["prev"]
print(df)Извлечение частей даты
Аксессор .dt предоставляет такие компоненты, как год, месяц и день недели, которые полезны в качестве признаков модели.
s = pd.Series(pd.date_range("2026-01-01", periods=3, freq="D"))
print(s.dt.dayofweek) # 0=Monday
print(s.dt.month)Быстрая проверка
Проверьте свои знания о временных рядах.
Итоги
Инструменты для работы с временными рядами:
pd.to_datetimeдля разбора,pd.date_rangeдля созданияDatetimeIndexпозволяет выполнять выборку по неполной строке датыresample(freq).agg()для повышения и понижения частотыrolling(window)для скользящих статистикshift(n)для запаздываний;.dtдля частей даты
Часто задаваемые вопросы
Урок «Временные ряды в Pandas» бесплатный?
Да — полный текст урока «Временные ряды в Pandas» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Временные ряды в Pandas»?
DatetimeIndex, resample(), rolling(), shift(), создание диапазонов дат и изменение частоты выборки. Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Временные ряды в Pandas»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- GroupBy и агрегация
- Сводные таблицы и перекрёстная агрегация
- Расширенное объединение и соединение
- Временные ряды в Pandas