【发布时间】:2017-03-03 00:17:37
【问题描述】:
我想在数据框中创建一个列,其中包含以另一个计算的布尔值为条件的股票价格。
close high low
Index
0 10 11 10
1 11 12 10
2 10 11 9
首先我想定义一些在逻辑上看起来像但实际上很长的条件:
condition1: if df.close > df.close.shift() return True
实际上,我想定义更多条件,这些条件都提供真或假。然后我将它包含在 np.where() 中:
df['NewColumn'] = np.where(condition1() == True, 'A', 'B')
我试图将条件定义为一个函数,但未能正确设置它。我想避免将条件的内容直接写入 np.where() ,因为它会因为多个嵌套条件而变得过于复杂。
那么,我怎样才能最有效地完成我的任务呢?
编辑:一个函数可能看起来像这样(但它在上面的 np.where() 中不起作用):
def condition1():
if df.Close > df.Close.shift(1):
return True
Else
return False
【问题讨论】:
-
numpy.where(df.close > df.close.shift(), 'A', 'B')应该可以工作 -
愿意分享您尝试将其定义为函数但未能正确设置的情况?
-
@Paul H,由于实际条件的复杂性和数量,我想避免将条件直接写入公式
-
@Abdou 我添加了一个我想象的设置示例