使用pandas数据帧从百分比变化计算绝对值

时间:2018-03-12 16:31:17

标签: python pandas dataframe

我知道如何使用pandas数据框计算绝对百分比变化,使用以下内容:

range

但我似乎无法弄清楚如何计算逆:使用df_pctChange = df_absolute.pct_change() 的初始行作为起点,如何根据{{{}中的百分比变化计算绝对数量1}}?

举个例子,我们假设df_absolute中两列的第一行是df_pctChangedf_absolute,而548625是以下内容:

525980

如何制作df_pctChange的内容?它应该如下所示:

NaN         NaN
-0.004522   -0.000812
-0.009018    0.001385
-0.009292   -0.002438

1 个答案:

答案 0 :(得分:1)

你应该能够使用公式:

(1 + r).cumprod()

获得累积增长因子。

示例:

>>> data
        0       1
0  548625  525980
1  546144  525553
2  541219  526281
3  536190  524998

>>> pctchg = data.pct_change()

>>> init = data.iloc[0]  # may want to use `data.iloc[0].copy()`
>>> res = (1 + pctchg).cumprod() * init
>>> res.iloc[0] = init
>>> res
          0         1
0  548625.0  525980.0
1  546144.0  525553.0
2  541219.0  526281.0
3  536190.0  524998.0

确认你倒退到正确的绝对数字:

>>> np.allclose(data, res)
True