Python 熊猫当前行*上一行+;前一行

Python 熊猫当前行*上一行+;前一行,python,pandas,Python,Pandas,指数(pd): tradedate | percent | day_index ------ | ------| ------ 2015-06-02 | 0 | 1000 2015-06-03 | 0.5 | 0 2015-06-04 | 0.6 | 0 ..... 想要的结果: tradedate | percent | day_index ------ | ------| ------ 2015-06-02 |

指数(pd):

tradedate  |  percent  |  day_index
------ | ------| ------
2015-06-02 |    0      |     1000
2015-06-03 |    0.5    |     0
2015-06-04 |    0.6    |     0
.....
想要的结果:

tradedate  |  percent  |  day_index
------ | ------| ------
2015-06-02 |    0      |     1000
2015-06-03 |    0.5    |     1500 = 1000 + 1000 * 0.5
2015-06-04 |    0.6    |     2400 = 1500 + 1500 * 0.6
.....
我试着

index_pd['day_index'] =index_pd['day_index'].shift(1) * index_pd['percent'].shift(0) + index_pd['day_index'].shift(1)
但它影响到第二排。
索引中有上千行,如何批量替换,感谢不是很好的解决方案,因为循环方式:


在计算的每一行中,前一天的
指数
值乘以
(1+指数百分比)
。因此,您可以使用
(1+指数百分比)
的累积乘积,并将其乘以
日指数的第一个值,以获得结果:

index_pd['day_index'] = (index_pd.percent+1).cumprod()*index_pd.day_index.iat[0]

如果要保留第二行的原始值,则需要写入其他列。如何进行批计算?批是什么意思?我的原始答案甚至不正确,您应该将结果写入日索引,并使用结果计算下一步。@t水用于获取日前索引并保存当前结果吗?
index_pd['day_index'] = (index_pd.percent+1).cumprod()*index_pd.day_index.iat[0]