请看下面的表格,我会尝试解释那里发生的事情。
A AVG(A) COEF A PREDICTION
1 7.711311e+06 NaN NaN NaN
2 7.954800e+06 NaN NaN NaN
3 7.936405e+06 NaN NaN NaN
4 7.943156e+06 NaN NaN NaN
5 8.058328e+06 NaN NaN NaN
6 8.262795e+06 NaN NaN NaN
7 8.571035e+06 NaN NaN NaN
8 8.594560e+06 NaN NaN NaN
9 8.633982e+06 NaN NaN NaN
10 8.449065e+06 NaN NaN NaN
11 8.471940e+06 NaN NaN NaN
12 8.498411e+06 NaN NaN NaN
13 8.938666e+06 NaN NaN NaN
14 9.118592e+06 NaN NaN NaN
15 9.148847e+06 NaN NaN NaN
16 8.894800e+06 NaN NaN NaN
17 8.981288e+06 8.480469e+06 1.020306 NaN
18 9.054566e+06 8.559484e+06 1.021430 NaN
19 9.126747e+06 8.628422e+06 1.016544 NaN
20 9.209076e+06 8.703285e+06 0.959278 NaN
21 9.229077e+06 8.778928e+06 0.977292 NaN
22 9.103907e+06 8.840432e+06 0.988755 9.019947e+06
A
列,我们有兴趣预测下一个A. AVG(A)
是A(窗口= 17)COEF
列是
预先计算并帮助我们预测A A PREDICTION
列的计算方法如下: df['A PREDICTION'] = df['AVG(A)'] * df['COEF'].shift(5)
我知道我的A PREDICTION
列是精确的,所以我想继续我的表另外5行(因为我还有5个系数)。为了做到这一点,我需要继续A
列,但我没有更多的数据,所以我将使用我的预测。即,下一行应如下所示:
A AVG(A) COEF A PREDICTION
1 7.711311e+06 NaN NaN NaN
2 7.954800e+06 NaN NaN NaN
3 7.936405e+06 NaN NaN NaN
4 7.943156e+06 NaN NaN NaN
5 8.058328e+06 NaN NaN NaN
6 8.262795e+06 NaN NaN NaN
7 8.571035e+06 NaN NaN NaN
8 8.594560e+06 NaN NaN NaN
9 8.633982e+06 NaN NaN NaN
10 8.449065e+06 NaN NaN NaN
11 8.471940e+06 NaN NaN NaN
12 8.498411e+06 NaN NaN NaN
13 8.938666e+06 NaN NaN NaN
14 9.118592e+06 NaN NaN NaN
15 9.148847e+06 NaN NaN NaN
16 8.894800e+06 NaN NaN NaN
17 8.981288e+06 8.480469e+06 1.020306 NaN
18 9.054566e+06 8.559484e+06 1.021430 NaN
19 9.126747e+06 8.628422e+06 1.016544 NaN
20 9.209076e+06 8.703285e+06 0.959278 NaN
21 9.229077e+06 8.778928e+06 0.977292 NaN
22 9.103907e+06 8.840432e+06 0.988755 9.019947e+06
23 9.019947e+06
之后,我会计算AVG(A)
并将其乘以1.021430
以获得第23行的A PREDICTION
,之后我会在第24行使用A PREDICTION
,计算下一个{ {1}}并将其乘以AVG(A)
并获取我的下一个1.016544
等。
有没有一种有效的方式做这样的事情?