Перейти к пандам.Затем вы можете транспонировать строку-1 с помощью команды .shift(1)
и строку + 1 с помощью команды .shift(-1)
.
x1 # Original df
0 0
1 1
2 2
3 3
4 4
df.x2 = df.x1.shift(1) # Shift down
x1 x2
0 0 NaN
1 1 0
2 2 1
3 3 2
4 4 3
df.x2 = df.x1.shift(-1) # Shift up
x1 x2
0 0 1
1 1 2
2 2 3
3 3 4
4 4 NaN
Применяя shift()
, вы получаете все соответствующие значения в одной строке, а затем просто можетеприменять операции по столбцам:
from __future__ import division
df['Close_Next_Day'] = df['Close'].shift(-1)
df = df[df.bullishSignal == True] # Filter to bullish
df['2dayReturn_bullish'] = (df['Close_Next_Day'] - df['Open']) / df['Open'])
Вы можете сделать то же самое, используя функцию процентного изменения панд.