熊猫:附加有条件的列

时间:2016-12-12 15:05:20

标签: python pandas

我有一个样本时间序列数据(股票)如下:

                 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中验证操作的效率。有人可以帮忙吗?

1 个答案:

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