2016-12-12 7 views
0

でカラムを追加:パンダ:私は以下のようにサンプルの時系列データ(株式を)持っている条件

  • :私は、次の条件に基づいて新しい列GAPを追加したいと思い
        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 = upとなります。
  • 現在の日が前日より前の日である場合は、GAP = downです。
  • それ以外の場合はGAP = unchです。 (あるいは、アップダウン-1、+1に変更し、そして0にunchすることができる)

私はならとのためのループでこれを行うことができ、それはパンダに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')) 
関連する問題