Сообщить об ошибке.

Функция period_range() модуля pandas в Python

Создание PeriodIndex с фиксированной частотой

Синтаксис:

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