【发布时间】:2019-06-17 08:06:44
【问题描述】:
我想要按元素的逻辑 OR 运算符。我知道“或”本身不是我要找的。p>
我知道 AND 对应于 & 而不是 ~。但是 OR 呢?
【问题讨论】:
标签: python pandas boolean-logic logical-operators boolean-operations
我想要按元素的逻辑 OR 运算符。我知道“或”本身不是我要找的。p>
我知道 AND 对应于 & 而不是 ~。但是 OR 呢?
【问题讨论】:
标签: python pandas boolean-logic logical-operators boolean-operations
对应的运算符为|:
df[(df < 3) | (df == 5)]
将逐元素检查值是否小于 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找到。
【讨论】:
| 和 np.logical_or 在存在 NaN 时表现不同。见stackoverflow.com/q/37131462/2596586
or 在这里不起作用。只有| 有效。
要对两个系列 a 和 b 进行逐元素逻辑或操作
a | b
【讨论】: