我知道如何使用pandas数据框计算绝对值的变化百分比,方法如下:
df_pctChange = df_absolute.pct_change()
但是我似乎无法弄清楚如何计算逆数:使用
df_absolute
的第一行作为起点,如何根据df_pctChange
中的百分比变化计算绝对数?例如,假设
df_absolute
中两列的初始行是548625
和525980
,而df_pctChange
是以下内容:NaN NaN
-0.004522 -0.000812
-0.009018 0.001385
-0.009292 -0.002438
如何产生
df_absolute
的内容?它应如下所示: 548625 525980
546144 525553
541219 526281
536190 524998
最佳答案
您应该可以使用以下公式:
(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
关于python - 使用Pandas数据框从变化百分比计算绝对值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49240133/