标签: python pandas
我对熊猫中的逻辑运算符有疑问。 如果我尝试:
list1=['x','y'] if st1=='A' & str2 not in list1: #do stuff
我得到:
unsupported operand type(s) for &: 'str' and 'bool'", u'occurred at index 0
但这行得通:为什么?
if st1=='A' and str2 not in list1: #do stuff
我所做的就是将&更改为and。
答案 0 :(得分:3)
&和and在Python中不是同一件事-&是按位运算符,and是逻辑运算符。有关按位操作,请参见先前的答案here和here,以及维基百科page。
&
and
在熊猫中,选择DataFrame的子集时,可以使用&进行逻辑操作,例如:
df = pd.DataFrame(data={"col1":[1,2,3], "col2":[2,3,4]}) df[(df["col1"]>1) & (df["col2"]<4)] # Selects second row based on boolean criteria