Skip to main content
 首页 » 编程设计

python之Pandas 跑分专栏

2025年05月04日20leader

我是 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