Вы можете использовать diff
, чтобы получить первое отличие серии, shift
, чтобы учесть тот факт, что мы хотим, чтобы строка следующая и np.where
для обновления с 1
или -1
соответственно:
import numpy as np
df['next_move'] = np.where(df.col_2.diff().shift(-1 ,fill_value=0).ge(0), 1, -1)
Или мы также можем map
логический ряд со словарем:
df['next_move'] = df.col_2.diff().shift(-1 ,fill_value=0).ge(0).map({False:-1,True:1})
print(df)
col_1 col_2 next_move
2020-04-29 08:14:20.226546389+00:00 192800.0 1
2020-04-29 08:14:20.316794250+00:00 192800.0 1
2020-04-29 08:14:20.458210433+00:00 192810.0 -1
2020-04-29 08:14:20.506966171+00:00 192800.0 1
2020-04-29 08:14:20.525237382+00:00 192800.0 1