我有一个样本时间序列数据(股票)如下:
Date PX_OPEN PX_LAST
Date
2011-01-03 2011-01-03 31.18 31.26
2011-01-04 2011-01-04 31.42 31.02
2011-01-05 2011-01-05 31.10 30.54
2011-01-06 2011-01-06 30.66 30.54
2011-01-07 2011-01-07 31.50 30.66
2011-01-10 2011-01-10 30.82 30.94
我想根据以下条件添加新列GAP
:
GAP = up
。GAP = down
。GAP = unch
。 (或者,up可以更改为+1,更低为-1,unch更改为0.)我可以使用if和for循环执行此操作,但这会破坏Pandas中验证操作的效率。有人可以帮忙吗?
答案 0 :(得分:2)
使用嵌套的np.where
来电:
import numpy as np
df['GAP'] = np.where(df['PX_OPEN'] > df['PX_LAST'].shift(), 'up',
np.where(df['PX_OPEN'] < df['PX_LAST'].shift(), 'down', 'unch'))