У меня есть фрейм данных с инфляцией mensal, у него есть PeriodIndex:
inflation
month<br>
2016-01 1.27
2016-02 0.90
2016-03 0.43
2016-04 0.61
2016-05 0.78
2016-06 0.35
2016-07 0.52
2016-08 0.44
2016-09 0.08
2016-10 0.26
2016-11 0.18
2016-12 0.30
2017-01 0.38
2017-02 0.33
2017-03 0.25
2017-04 0.14
2017-05 0.31
2017-06 -0.23
2017-07 0.24
2017-08 0.19
2017-09 0.16
2017-10 0.42
2017-11 0.28
2017-12 0.44
Я думал, что годовой уровень инфляции будет очень легко рассчитать, просто пересчитать до годового периода:
(df/100+1).resample('A').cumprod()
но выдает ошибку:
AttributeError: 'PeriodIndexResampler' object has no attribute 'cumprod'
Работает с более простыми функциями, такими как sum, но я попробовал некоторые альтернативы, и cumprod не ухудшает результаты.
Мой ожидаемый ответ будет:
2016 1.062881
2017 1.029473
Каков наилучший способ сделать этот расчет?
Вот данные для копирования ипаста:
python
[[Period('2016-01', 'M'), 1.27],
[Period('2016-02', 'M'), 0.9],
[Period('2016-03', 'M'), 0.43],
[Period('2016-04', 'M'), 0.61],
[Period('2016-05', 'M'), 0.78],
[Period('2016-06', 'M'), 0.35],
[Period('2016-07', 'M'), 0.52],
[Period('2016-08', 'M'), 0.44],
[Period('2016-09', 'M'), 0.08],
[Period('2016-10', 'M'), 0.26],
[Period('2016-11', 'M'), 0.18],
[Period('2016-12', 'M'), 0.3],
[Period('2017-01', 'M'), 0.38],
[Period('2017-02', 'M'), 0.33],
[Period('2017-03', 'M'), 0.25],
[Period('2017-04', 'M'), 0.14],
[Period('2017-05', 'M'), 0.31],
[Period('2017-06', 'M'), -0.23],
[Period('2017-07', 'M'), 0.24],
[Period('2017-08', 'M'), 0.19],
[Period('2017-09', 'M'), 0.16],
[Period('2017-10', 'M'), 0.42],
[Period('2017-11', 'M'), 0.28],
[Period('2017-12', 'M'), 0.44]]