代码之家  ›  专栏  ›  技术社区  ›  neves

熊猫:如何根据月度数据计算年通胀率?

  •  1
  • neves  · 技术社区  · 7 年前

    我有一个带有月经膨胀的数据框架,它有一个周期索引:

    <代码> 通货膨胀 月
    2016年1月1日27分 2016年2月0日90分 2016年3月0.43日 2016年4月0.61日 2016年5月0.78日 2016-06 0.35 2016年7月0.52日 2016年8月0.44日 2016年9月0日 2016年10月0.26日 2016-11 0.18年 2016年12月0.30日 2017年1月0.38日 2017年2月0.33日 2017年3月0.25日 2017年4月0.14日 2017年5月0.31日 2017年6月-0.23日 2017年7月0日24分 2017年8月0.19日 2017年9月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
    < /代码> 
    
    

    哪种方法是最好的计算方法?

    以下是用于复制和粘贴的数据:

    <代码>蟒蛇 【句号(‘2016-01’,‘M’),1.27】, [期间(‘2016-02’,‘m’),0.9], [期间(‘2016-03’,‘m’),0.43], [期间(‘2016-04’,‘m’),0.61], [期间(‘2016-05’,‘m’),0.78], [期间(‘2016-06’,‘m’),0.35], [期间(‘2016-07’,‘m’),0.52], [期间(‘2016-08’,‘m’),0.44], [期间(‘2016-09’,‘m’),0.08], [期间(‘2016-10’,‘m’),0.26], [期间(‘2016-11’,‘m’),0.18], [期间(‘2016-12’,‘m’),0.3], [期间(‘2017-01’,‘M’),0.38], [期间(‘2017-02’,‘m’),0.33], [期间(‘2017-03’,‘m’),0.25], [期间(‘2017-04’,‘M’),0.14], [期间(‘2017-05’,‘m’),0.31], [期间('2017-06','m'),-0.23], [期间(‘2017-07’,‘m’),0.24], [期间(‘2017-08’,‘m’),0.19], [期间(‘2017-09’,‘m’),0.16], [期间(‘2017-10’,‘m’),0.42], [期间(‘2017-11’,‘m’),0.28], [期间(‘2017-12’,‘m’),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 回复  |  直到 7 年前
        1
  •  4
  •   jezrael    7 年前

    用途:

    df.groupby(pd.Grouper(freq='A')).cumprod()