pandas.date_range#

pandas.date_range(начало=None, end=None, periods=None, freq=None, tz=None, нормализовать=False, имя=None, inclusive='both', *, единица=None, **kwargs)[источник]#

Возвращает DatetimeIndex с фиксированной частотой.

Возвращает диапазон равноотстоящих временных точек (где разница между любыми двумя соседними точками задана указанной частотой), таких что они все удовлетворяют start <[=] x <[=] end, где первый и последний являются, соответственно, первой и последней точками времени в этом диапазоне, которые попадают на границу freq (если задано как строковая частота) или которые действительны для freq (если задано как pandas.tseries.offsets.DateOffset). (Если ровно один из start, end, или freq является не если указан, этот пропущенный параметр может быть вычислен при заданных periods, количество временных шагов в диапазоне. См. примечание ниже.)

Параметры:
началоstr или datetime-like, опционально

Левая граница для генерации дат.

endstr или datetime-like, опционально

Правая граница для генерации дат.

periodsint, необязательный

Количество периодов для генерации.

freqstr, Timedelta, datetime.timedelta или DateOffset, по умолчанию 'D'

Строки частоты могут иметь множители, например '5h'. См. здесь для списка псевдонимов частоты.

tzstr или tzinfo, опционально

Имя часового пояса для возврата локализованного DatetimeIndex, например 'Asia/Hong_Kong'. По умолчанию, результирующий DatetimeIndex не имеет часового пояса, если не переданы объекты datetime с часовым поясом.

нормализоватьbool, по умолчанию False

Нормализовать начальные/конечные даты до полуночи перед генерацией диапазона дат.

имяstr, по умолчанию None

Имя результирующего DatetimeIndex.

inclusive{“both”, “neither”, “left”, “right”}, по умолчанию “both”

Включать границы; Указывать, считать ли каждую границу закрытой или открытой.

Добавлено в версии 1.4.0.

единицаstr, по умолчанию None

Укажите желаемое разрешение результата.

Добавлено в версии 2.0.0.

**kwargs

Для совместимости. Не влияет на результат.

Возвращает:
DatetimeIndex

Смотрите также

DatetimeIndex

Неизменяемый контейнер для дат и времени.

timedelta_range

Возвращает TimedeltaIndex с фиксированной частотой.

period_range

Вернуть PeriodIndex с фиксированной частотой.

interval_range

Возвращает IntervalIndex с фиксированной частотой.

Примечания

Из четырех параметров start, end, periods, и freq, необходимо указать ровно три. Если freq опущен, результирующий DatetimeIndex будет иметь periods линейно распределённые элементы между start и end (закрыт с обеих сторон).

Чтобы узнать больше о строках частоты, пожалуйста, смотрите эта ссылка.

Примеры

Указание значений

Следующие четыре примера генерируют одинаковый DatetimeIndex, но варьируйте комбинацию начало, end и periods.

Укажите начало и end, с частотой по умолчанию ежедневно.

>>> pd.date_range(start='1/1/2018', end='1/08/2018')
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
               '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'],
              dtype='datetime64[ns]', freq='D')

Укажите с учётом часового пояса начало и end, с частотой по умолчанию ежедневно.

>>> pd.date_range(
...     start=pd.to_datetime("1/1/2018").tz_localize("Europe/Berlin"),
...     end=pd.to_datetime("1/08/2018").tz_localize("Europe/Berlin"),
... )
DatetimeIndex(['2018-01-01 00:00:00+01:00', '2018-01-02 00:00:00+01:00',
               '2018-01-03 00:00:00+01:00', '2018-01-04 00:00:00+01:00',
               '2018-01-05 00:00:00+01:00', '2018-01-06 00:00:00+01:00',
               '2018-01-07 00:00:00+01:00', '2018-01-08 00:00:00+01:00'],
              dtype='datetime64[ns, Europe/Berlin]', freq='D')

Укажите начало и periods, количество периодов (дней).

>>> pd.date_range(start='1/1/2018', periods=8)
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
               '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'],
              dtype='datetime64[ns]', freq='D')

Укажите end и periods, количество периодов (дней).

>>> pd.date_range(end='1/1/2018', periods=8)
DatetimeIndex(['2017-12-25', '2017-12-26', '2017-12-27', '2017-12-28',
               '2017-12-29', '2017-12-30', '2017-12-31', '2018-01-01'],
              dtype='datetime64[ns]', freq='D')

Укажите начало, end, и periods; частота генерируется автоматически (равномерно распределённая).

>>> pd.date_range(start='2018-04-24', end='2018-04-27', periods=3)
DatetimeIndex(['2018-04-24 00:00:00', '2018-04-25 12:00:00',
               '2018-04-27 00:00:00'],
              dtype='datetime64[ns]', freq=None)

Другие параметры

Изменен freq (частота) в 'ME' (частота конца месяца).

>>> pd.date_range(start='1/1/2018', periods=5, freq='ME')
DatetimeIndex(['2018-01-31', '2018-02-28', '2018-03-31', '2018-04-30',
               '2018-05-31'],
              dtype='datetime64[ns]', freq='ME')

Кратные значения разрешены

>>> pd.date_range(start='1/1/2018', periods=5, freq='3ME')
DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31',
               '2019-01-31'],
              dtype='datetime64[ns]', freq='3ME')

freq также может быть указан как объект Offset.

>>> pd.date_range(start='1/1/2018', periods=5, freq=pd.offsets.MonthEnd(3))
DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31',
               '2019-01-31'],
              dtype='datetime64[ns]', freq='3ME')

Укажите tz для установки часового пояса.

>>> pd.date_range(start='1/1/2018', periods=5, tz='Asia/Tokyo')
DatetimeIndex(['2018-01-01 00:00:00+09:00', '2018-01-02 00:00:00+09:00',
               '2018-01-03 00:00:00+09:00', '2018-01-04 00:00:00+09:00',
               '2018-01-05 00:00:00+09:00'],
              dtype='datetime64[ns, Asia/Tokyo]', freq='D')

inclusive управляет включением начало и end которые находятся на границе. По умолчанию "both" включает граничные точки с обоих концов.

>>> pd.date_range(start='2017-01-01', end='2017-01-04', inclusive="both")
DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04'],
              dtype='datetime64[ns]', freq='D')

Используйте inclusive='left' исключить end если оно попадает на границу.

>>> pd.date_range(start='2017-01-01', end='2017-01-04', inclusive='left')
DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03'],
              dtype='datetime64[ns]', freq='D')

Используйте inclusive='right' исключить начало если он попадает на границу, и аналогично inclusive='neither' исключит оба начало и end.

>>> pd.date_range(start='2017-01-01', end='2017-01-04', inclusive='right')
DatetimeIndex(['2017-01-02', '2017-01-03', '2017-01-04'],
              dtype='datetime64[ns]', freq='D')

Указать единицу измерения

>>> pd.date_range(start="2017-01-01", periods=10, freq="100YS", unit="s")
DatetimeIndex(['2017-01-01', '2117-01-01', '2217-01-01', '2317-01-01',
               '2417-01-01', '2517-01-01', '2617-01-01', '2717-01-01',
               '2817-01-01', '2917-01-01'],
              dtype='datetime64[s]', freq='100YS-JAN')