我想在pandas中创建一个新列,但计算的值是引用它上面单元格中的值。我有一个名为returns的列,基本上该值应该是前一行的return *值。
从概念上讲,我认为它应该是这样的,但这不起作用,我不知道如何得到它。
df2['value'] = [100 if x == 0 else x * y for x, y in zip(df2['return'], df2['value'].shift(1))]
所以,数据看起来像这样:
return
0
0.99756466142691
0.99846199238689
1.004349336899
1.0018775199783
我想要这个:
return value
0.0000000000 100.0000000000
0.9975646614 99.7564661427
0.9984619924 99.6030399383
1.0043493369 100.0362471152
1.0018775200 100.2240671677
谢谢!