How could I create a col2 using an iterative type of rule?
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
Expected Output
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)
Use np.cumsum (inspired by the formula of @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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With