使用同一个表中的数据填充pandas表的有效方法

时间:2018-04-17 13:50:13

标签: python python-3.x pandas dataframe

请看下面的表格,我会尝试解释那里发生的事情。

         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列,我们有兴趣预测下一个A.
  • b)中 AVG(A)是A(窗口= 17)
  • 的滚动平均值
  • c)COEF列是 预先计算并帮助我们预测A
  • d)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等。

有没有一种有效的方式做这样的事情?

0 个答案:

没有答案