在 Pandas 中实现滚动 pct_change(period) 方法的最佳方法是什么?
我有一个系列's':
>>>s
1999-03-01 1.0139
1999-03-02 1.0053
1999-03-03 1.0069
1999-03-04 0.9963
1999-03-05 1.0029
1999-03-08 1.0052
1999-03-09 1.0039
...
我正在寻找一个快速灵活的实现,它给了我类似的东西
>>>s.rolling_pct_change(period=3)
1999-03-01 NaN
1999-03-02 NaN
1999-03-03 NaN
1999-03-04 -0.0173587138771
1999-03-05 -0.00238734706058
1999-03-08 -0.00168835038236
1999-03-09 0.00762822443039
其中每个
element = (element[day] - element[day-period]) / element[day-period]
最佳答案
使用 pct_change()
方法吗?
In [265]: s.pct_change(3)
Out[265]:
val
date
1999-03-01 NaN
1999-03-02 NaN
1999-03-03 NaN
1999-03-04 -0.017359
1999-03-05 -0.002387
1999-03-08 -0.001688
1999-03-09 0.007628
或者,使用
shift()
构建In [252]: s/s.shift(3)-1
Out[252]:
val
date
1999-03-01 NaN
1999-03-02 NaN
1999-03-03 NaN
1999-03-04 -0.017359
1999-03-05 -0.002387
1999-03-08 -0.001688
1999-03-09 0.007628
关于python - 如何在 Pandas 中实现滚动 pct_change(period)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35846147/