我有一个带有一列的数据帧(更改)。 我想创建一个NewColumn,它在第一行中输入数字60,之后的每一行由'Change'*NewColumn中的前一个值+NewColumn中的前一个值给出。导致下面的示例数据帧
Index Change NewColumn
0 0.02 60
1 -0.01 59.4
2 0.05 62.37
3 0.02 63.6174
我可以通过运行以下循环来实现这一点
df['NewColumn'] = 0.00000
for i in range(len(df)):
if i == 0:
df['NewColumn'][i] = 60
else:
df['NewColumn'][i] = df['NewColumn'][i-1] * df['Change'][i] + df['NewColumn'][i-1]
它确实可以正常工作,但是在一个大的数据帧上它非常慢,所以我正在寻找任何更快的方法来实现这一点
我会在修改过的change列上使用
Series.cumprod
,然后将其乘以起始值60:(我将第一个
Change
值更改为零,因为它不清楚Change
的第一行是什么意思)相关问题 更多 >
编程相关推荐