我是 Pandas 的新手,希望得到一些帮助:
factor
1
1
2
1
1
3
1
2
并产生:
factor running_div
1 1
1 1
2 0.5
1 0.5
1 0.5
3 0.1666667
1 0.1666667
2 0.0833333
我可以通过循环使用 .iloc 来完成,但尝试使用矢量数学来提高效率。看过滚动窗口并使用 .shift(1),但无法正常工作。如果有人能提供任何指导,我们将不胜感激。
请您参考如下方法:
使用 numpy ufunc.accumulate
df['cum_div'] = np.divide.accumulate(df.factor.to_numpy())
factor cum_div
0 1 1.000000
1 1 1.000000
2 2 0.500000
3 1 0.500000
4 1 0.500000
5 3 0.166667
6 1 0.166667
7 2 0.083333
