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')