Pandas中的元素逻辑或

vdzxcuhz  于 2023-02-17  发布在  其他
关注(0)|答案(3)|浏览(134)

我知道AND对应于&,NOT对应于~。什么是元素逻辑OR运算符?我知道“or”本身不是我要找的。

esyap4oy

esyap4oy1#

对应的运算符为|

df[(df < 3) | (df == 5)]

将按元素检查value是否小于3或等于5。
如果你需要一个函数来完成这个任务,我们有np.logical_or

df[np.logical_or(df<3, df==5)]

或者,在多种条件下使用logical_or.reduce

df[np.logical_or.reduce([df<3, df==5])]

由于条件是作为单个参数指定的,因此不需要圆括号分组。
关于Pandas逻辑运算的更多信息可以在here中找到。

az31mfrm

az31mfrm2#

要执行两个系列ab的元素逻辑OR,只需执行以下操作

a | b
fdbelqdn

fdbelqdn3#

如果您对单个 Dataframe 的列进行操作,则evalqueryor按元素工作的选项。您也无需担心括号,因为比较运算符比布尔/位运算符具有更高的优先级。例如,以下query调用返回列A值〉1且列B值〉2的行。

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

相关问题