Spec-Zone.ru › pandas 2

pandas.date_range

pandas.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, inclusive='both', *, unit=None, **kwargs)[source]

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

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

Параметры:
start:строка или объект datetime, необязательно

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

end:строка или объект datetime, необязательно

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

periods:целое число, необязательно

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

freq:строка, Timedelta, datetime.timedelta или DateOffset, по умолчанию ‘D’

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

tz:строка или tzinfo, необязательно

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

normalize:bool, по умолчанию False

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

name:строка, по умолчанию None

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

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

Включать границы; определяет, как обрабатываются границы.

Введено в версии 1.4.0.

unit:строка, по умолчанию 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, но варьируют комбинации start, end и periods.

Укажите start и 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')

Укажите timezone-aware start и 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')

Укажите start и 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')

Укажите start, 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 управляет включением start и 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' чтобы исключить start, если он попадает на границу, а аналогично inclusive='neither' исключит как start, так и 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')

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.date_range.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API