You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对两个相同大小的布尔型Pandas DataFrame执行AND、OR、XOR逻辑运算

Pandas布尔型DataFrame逐元素逻辑运算问题解答

可以直接对两个大小一致、全为布尔值的Pandas DataFrame执行逐元素的AND、OR、XOR逻辑运算,具体操作规则如下:

  • 逐元素AND运算:使用&运算符,或调用df1.logical_and(df2)方法
  • 逐元素OR运算:使用|运算符,你给出的示例直接执行df1 | df2即可得到预期结果
  • 逐元素XOR运算:使用^运算符,或调用df1.logical_xor(df2)方法

注意:不要使用Python原生的and/or/not关键字执行运算,这类关键字会尝试对整个DataFrame对象做布尔判断,Pandas不支持该操作,会直接抛出异常。

以下是你给出的示例验证代码:

import pandas as pd

# 构造示例数据
df1 = pd.DataFrame([
    [False, True, False],
    [True, False, True]
])
df2 = pd.DataFrame([
    [True, False, False],
    [True, False, False]
])

# 执行OR运算
or_result = df1 | df2
print(or_result)

运行后输出结果和你的预期完全一致:

0      1      2
0   True   True  False
1   True  False   True

额外说明:如果两个DataFrame的索引、列名不完全匹配,Pandas会先按标签对齐后再运算,匹配失败的位置会返回空值NaN。如果需要严格按相对位置逐元素运算,可以先提取底层numpy数组运算后再转回DataFrame,参考写法:pd.DataFrame(df1.values | df2.values, index=df1.index, columns=df1.columns)

内容的提问来源于stack exchange,提问作者Jj Rr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:15:01