2016-12-12 271 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'))