import pandas idx = pandas.period_range(start=None, end=None, periods=None, freq=None, name=None)[
start=None
- левая граница для создания периодов. Принимает следующие типы: строку str
(похожую на дату/время), объекты datetime
, pandas.Timestamp
или Period
.end=None
- правая граница для создания периодов. Принимает следующие типы: строку str
(похожую на дату/время), объекты datetime
, pandas.Timestamp
или Period
.periods=None
- целое число, количество периодов для генерации.freq=None
- псевдоним частоты. По умолчанию частота берется от start
или end
, если это объекты Period
. В противном случае значением по умолчанию является 'D'
- каждый день.name=None
- строка с именем результирующего PeriodIndex
.Функция period_range()
модуля pandas
создает и возвращает PeriodIndex
с фиксированной частотой по заданным параметрам. Частотой по умолчанию является календарный день.
Из трех аргументов: start
, end
и periods
необходимо указать ровно два. Если аргумент freq
опущен, то результирующий PeriodIndex
будет содержать элементы с периодами, линейно расположенными между началом start
и концом end
.
pandas.period_range()
:>>> import pandas as pd >>> pd.period_range(start='2023-01-01', end='2024-01-01', freq='M') # PeriodIndex(['2023-01', '2023-02', '2023-03', '2023-04', '2023-05', '2023-06', # '2023-07', '2023-08', '2023-09', '2023-10', '2023-11', '2023-12', # '2024-01'], # dtype='period[M]')
Если start
или end
являются объектами Period
, то они будут использоваться в качестве конечных точек привязки для PeriodIndex
с частотой, установленной в объектах Period
(по умолчанию).
>>> start = pd.Period('2024Q1', freq='Q') >>> end = pd.Period('2024Q4', freq='Q') >>> pd.period_range(start=start, end=end) # PeriodIndex(['2024Q1', '2024Q2', '2024Q3', '2024Q4'], dtype='period[Q-DEC]')
При этом, если функции pandas.period_range()
передан аргумент freq
, то периоды будут генерироваться с частотой, указанной во freq
.
>>> pd.period_range(start=start, end=end, freq='M') # PeriodIndex(['2024-03', '2024-04', '2024-05', '2024-06', '2024-07', '2024-08', # '2024-09', '2024-10', '2024-11', '2024-12'], # dtype='period[M]')
При передаче частоты, например, freq="3M"
создается последовательность периодов с умноженным диапазоном, т.е. как бы 'M' x 3
(частота будет равна трем месяцам).
>>> pd.period_range(start="2023-01", freq="3M", periods=4) # PeriodIndex(['2023-01', '2023-04', '2023-07', '2023-10'], dtype='period[3M]')