2016-12-12 273 views
0

附加专栏中,我有一个样本时间序列数据(股票)如下:熊猫:与条件

    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。 (或者,最多可以更改为+1,下至-1,unch为0)

我可以与如果和循环做到这一点,但这会破坏verctorized操作的熊猫效率。谁能帮忙?

回答

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'))