使用前一行进行迭代

如何使用迭代类型的规则创建 col2?

col2 = col1 + 0.1(col2's previous value). If there is no previous value (here in 20 Dec 2019), then col2 should equal col1

df
  date      col1   
2019-12-20   10      
2019-12-27   3       
2020-01-03   7

预期产出

  date      col1  col2  
2019-12-20   10     10   (no previous value, so equal col1)
2019-12-27   3      4    (3+0.1*10)
2020-01-03   7      7.4  (7+0.1*4)

回答

使用np.cumsum (灵感来自@MustafaAyd?n 的公式)

p = 0.1 ** np.arange(len(df)-1, -1, -1)
df['col2'] = np.cumsum(p * df['col1']) / p
>>> df
         date  col1  col2
0  2019-12-20    10  10.0
1  2019-12-27     3   4.0
2  2020-01-03     7   7.4


以上是使用前一行进行迭代的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>