заполнение следующего кадра данных предыдущим значением строки - PullRequest
0 голосов
/ 26 сентября 2019
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 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...