我知道AND对应于&,NOT对应于~。什么是元素逻辑OR运算符?我知道“or”本身不是我要找的。
&
~
esyap4oy1#
对应的运算符为|:
|
df[(df < 3) | (df == 5)]
将按元素检查value是否小于3或等于5。如果你需要一个函数来完成这个任务,我们有np.logical_or。
np.logical_or
df[np.logical_or(df<3, df==5)]
或者,在多种条件下使用logical_or.reduce,
logical_or.reduce
df[np.logical_or.reduce([df<3, df==5])]
由于条件是作为单个参数指定的,因此不需要圆括号分组。关于Pandas逻辑运算的更多信息可以在here中找到。
az31mfrm2#
要执行两个系列a和b的元素逻辑OR,只需执行以下操作
a
b
a | b
fdbelqdn3#
如果您对单个 Dataframe 的列进行操作,则eval和query是or按元素工作的选项。您也无需担心括号,因为比较运算符比布尔/位运算符具有更高的优先级。例如,以下query调用返回列A值〉1且列B值〉2的行。
eval
query
or
df = pd.DataFrame({'A': [1,2,0], 'B': [0,1,2]}) df.query('A > 1 or B > 2') # == df[(df['A']>1) | (df['B']>2)] # A B # 1 2 1
或者使用eval,可以返回一个boolean Series(同样,or作为元素操作符也很好用)。
df.eval('A > 1 or B > 2') # 0 False # 1 True # 2 False # dtype: bool
3条答案
按热度按时间esyap4oy1#
对应的运算符为
|
:将按元素检查value是否小于3或等于5。
如果你需要一个函数来完成这个任务,我们有
np.logical_or
。或者,在多种条件下使用
logical_or.reduce
,由于条件是作为单个参数指定的,因此不需要圆括号分组。
关于Pandas逻辑运算的更多信息可以在here中找到。
az31mfrm2#
要执行两个系列
a
和b
的元素逻辑OR,只需执行以下操作fdbelqdn3#
如果您对单个 Dataframe 的列进行操作,则
eval
和query
是or
按元素工作的选项。您也无需担心括号,因为比较运算符比布尔/位运算符具有更高的优先级。例如,以下query
调用返回列A值〉1且列B值〉2的行。或者使用
eval
,可以返回一个boolean Series(同样,or
作为元素操作符也很好用)。