Панды: Как рассчитать годовую инфляцию по месячным данным? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть фрейм данных с инфляцией 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]]

1 Ответ

0 голосов
/ 02 октября 2018

Использование:

df.groupby(pd.Grouper(freq='A')).cumprod()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...