数据框用上一行值填充下一行

时间:2019-09-26 11:00:42

标签: pandas python-2.7 dataframe

AMA1=close1
AMA(t)=AMA(t-1)+alpha(t)*(close(t)-AMA(t-1))

id    date        close   alpha     AMA
1  2016-01-04      343      1       343
2  2016-01-05      335      2       327  (343+2*(335-343))
3  2016-01-06      337      3       357  (327+3*(337-327))
4  2016-01-07      338     -1       376  (357-1*(338-357))

我想计算数据帧的AMA列,规则如下:

if id==1, AMA(1)=close(1)
if id>1,  AMA(t)=AMA(t-1)+alpha(t)*(close(t)-AMA(t-1))

我用于循环,但是当我处理大数据时它非常慢。 有谁知道如何在没有for循环的情况下做到这一点?非常感谢!!

for i in range(len(df)):
   if i==1:
      AMA(1)=close(1)
   if i>1:
      AMA(t)=AMA(t-1)+alpha(t)*(close(t)-AMA(t-1))

0 个答案:

没有答案