对多个值使用and运算符

2024-04-20 03:41:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图收到一个对sma进行多次比较的单一正确/错误响应。我能够从我的数据集中分别收到所有这些数据的返回,但是,我想要一个单一的响应

目前情况如下:

df['Criteria 1'] = df['50 sma'] > df['30 sma']
df['Criteria 2'] = df['30 sma'] > df['15 sma']
df['Criteria 3'] = df['15 sma'] > df['5 sma']

df

我尝试了许多使用“and”的变体,但没有成功,例如:

df['Criteria 1'] = df['50 sma'] > df['30 sma'] and df['30 sma'] > df['15 sma'] and df['15 
sma'] > df['5 sma']

df

由于我没有什么经验,我正在努力使代码非常简单。如何使用“and”运算符对所有条件提供单个响应


2条回答

您应该使用&而不是and。试试这个:

df['Criteria 1'] = df[(df['50 sma'] > df['30 sma']) &
                      (df['30 sma'] > df['15 sma']) &
                      (df['15 sma'] > df['5 sma'])]

谢谢你的帮助,哈米德。我无法让它像上面所说的那样运行,但是,在去掉括号后,我能够得到一个响应。返回具有以下表达式的响应

df['Criteria 1'] = (df['50 sma'] > df['30 sma']) & 
                   (df['30 sma'] > df['15 sma']) & 
                   (df['15 sma'] > df['5 sma'])
df

相关问题 更多 >