我有一个数据框:
A B
100 0.00
50 -0.50
100 1.00
120 0.20
我想根据B列上的某个条件来选择A列上的移位值,因此,例如,如果B> = 0.20并且我想要的移位步长是2,我将得到100(从B = 1.00),并且50(来自B = 0.20),可以丢弃B <0.20的行。
答案 0 :(得分:1)
您可以将shift
与np.where
结合使用,以有条件地获取移位后的值:
shiftstep = 2
df['shift'] = np.where(df['B'].ge(0.2), df['A'].shift(shiftstep), np.NaN)
A B shift
0 100 0.0 NaN
1 50 -0.5 NaN
2 100 1.0 100.0
3 120 0.2 50.0