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