Чтобы получить диапазоны для кварталов, вы можете сделать следующее, чтобы посмотреть на числа, кратные тройкам, которые могут динамически смотреть на несколько лет:
n = 3
months = pd.period_range(start='2020-01', periods=12, freq='M')
for i in range(len(months)):
if i%n == 0:
print(months[i], months[i+2], months[i+2].qyear, n/len(months))
2020-01 2020-03 2020 0.25
2020-04 2020-06 2020 0.25
2020-07 2020-09 2020 0.25
2020-10 2020-12 2020 0.25
Этот метод в основном
Чтобы получить только в четвертом квартале (опять же, это будет работать в течение нескольких лет, предполагая, что период 12, 24, 36 месяцев и т. д. c. начинается в январе), вы можете сделать оператор if
для октября, где оставшаяся часть (x+3)/12
равно 0
, поэтому будет возвращено 9, 21, 33, et c. которые будут индексами для October
за несколько лет:
n=3
months = pd.period_range(start='2020-01', periods=48, freq='M')
for i in range(len(months)):
if i>0 and (i+n)%12 == 0:
print(months[i], months[i+2], months[i+2].qyear, n/len(months))
2020-10 2020-12 2020 0.0625
2021-10 2021-12 2021 0.0625
2022-10 2022-12 2022 0.0625
2023-10 2023-12 2023 0.0625
Обратите внимание, что я могу указать periods=48
в приведенном выше коде. Если вы измените на periods=12
, то вернется:
2020-10 2020-12 2020 0.25