我知道如何使用pandas数据框计算绝对百分比变化,使用以下内容:
range
但我似乎无法弄清楚如何计算逆:使用df_pctChange = df_absolute.pct_change()
的初始行作为起点,如何根据{{{}中的百分比变化计算绝对数量1}}?
举个例子,我们假设df_absolute
中两列的第一行是df_pctChange
和df_absolute
,而548625
是以下内容:
525980
如何制作df_pctChange
的内容?它应该如下所示:
NaN NaN
-0.004522 -0.000812
-0.009018 0.001385
-0.009292 -0.002438
答案 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