2016-12-13 33 views
1

我正在编写代码以获取花费在5000美元以上并且新近超过100天的成员数据,将这些成员归类为最高组。下面的第一行工作,但是当我添加另一个条件(第二行)时,它不再过滤。谁能告诉我为什么?谢谢!Python - 比较运算符超过2个条件

GrpA=(MbrKPI3[(MbrKPI3['Amt'])>5000]) 

GrpA=(MbrKPI3[(MbrKPI3['Amt'])>5000 & (MbrKPI3['Recency']>100)]) 

回答

8

你有一个错字,第一个右括号需要围绕比较值:

GrpA=(MbrKPI3[(MbrKPI3['Amt'])>5000 & (MbrKPI3['Recency']>100)]) 
          ^--- here 

应该是:

GrpA=(MbrKPI3[(MbrKPI3['Amt']>5000) & (MbrKPI3['Recency']>100)]) 
            ^--- to here 

还外括号不是必需的:

GrpA = MbrKPI3[(MbrKPI3['Amt']>5000) & (MbrKPI3['Recency']>100)] 
+1

是'&'逻辑和为pur姿势?或简单的'和'会完成这项工作? –

+2

@ Jean-FrançoisFabre对于数组,您必须使用'&','和'不理解数组,这里比较数组会返回一组布尔值。你会得到一个'ValueError',因为它是模糊的,因为它期望一个标量而不是一组布尔值 – EdChum

+0

感谢EdChum的帮助! – unclegood