Функция date_range
Функция date_range из модуля pandas создаёт
диапазон дат (или меток времени) и возвращает его в виде
объекта DatetimeIndex. Это удобно для создания
равномерных последовательностей дат, например, для индексации
временных рядов. Основные параметры: start -
начальная дата, end - конечная дата, periods -
количество периодов, freq - шаг (частота) между датами.
Если не указан freq и заданы start и end,
то шаг будет выбран автоматически как один день.
Также можно задать часовой пояс через параметр tz
и нормализовать время до полуночи с помощью normalize.
Функция гибко настраивается и часто используется вместе
с методом reindex или для создания временной шкалы
перед вставкой данных.
Синтаксис
pd.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False)
Пример
Создадим диапазон дат с шагом в один день от указанной даты начала до даты конца:
import pandas as pd
res = pd.date_range(start='2026-01-01', end='2026-01-05')
print(res)
Результат выполнения кода:
DatetimeIndex(['2026-01-01', '2026-01-02', '2026-01-03', '2026-01-04', '2026-01-05'], dtype='datetime64[ns]', freq='D')
Пример
Укажем количество периодов вместо конечной даты.
Получим ровно 3 даты с шагом по умолчанию (один день):
import pandas as pd
res = pd.date_range(start='2026-01-01', periods=3)
print(res)
Результат выполнения кода:
DatetimeIndex(['2026-01-01', '2026-01-02', '2026-01-03'], dtype='datetime64[ns]', freq='D')
Пример
Зададим частоту в 4 часа (параметр freq = '4h').
Диапазон будет содержать даты с шагом в 4 часа:
import pandas as pd
res = pd.date_range(start='2026-01-01 08:00', periods=4, freq='4h')
print(res)
Результат выполнения кода:
DatetimeIndex(['2026-01-01 08:00:00', '2026-01-01 12:00:00', '2026-01-01 16:00:00', '2026-01-01 20:00:00'], dtype='datetime64[ns]', freq='4h')
Пример
Используем параметр normalize для приведения времени
к полуночи, и зададим часовой пояс с помощью tz:
import pandas as pd
res = pd.date_range(start='2026-01-01 12:00', periods=3, freq='D', normalize=True, tz='Europe/Moscow')
print(res)
Результат выполнения кода:
DatetimeIndex(['2026-01-01 00:00:00+03:00', '2026-01-02 00:00:00+03:00', '2026-01-03 00:00:00+03:00'], dtype='datetime64[ns, Europe/Moscow]', freq='D')
Смотрите также
-
функция
to_datetime,
которая преобразует аргументы в дату и время -
функция
bdate_range,
которая создаёт диапазон только рабочих дней -
функция
period_range,
которая создаёт диапазон периодов (например, по месяцам) -
функция
to_timedelta,
которая преобразует аргументы в длительность (timedelta)