在行为异常的两个布尔系列对象之间使用 Pandas“|” 运算符

问题描述

我有两只大熊猫系列。

Awful glad vaccine coming! #COVID19

都是 bool 数组,掩码只有 False,而 t 包含几个 True 值

In [32]: mask.shape
Out[32]: (13919455,)

In [33]: t.shape
Out[33]: (13919455,)

我希望当我应用 Pandas OR 运算符时,| ,我会得到 7724 的总和,并且运算符是可交换的。 但是,我得到以下结果:

In [28]: sum(mask)
Out[28]: 0

In [29]: sum(t)
Out[29]: 7724

这是一个错误吗?

解决方法

我刚刚想通了,这是熊猫必须如何进行 OR 操作的“功能”。 原来我之前从“t”中删除了一些行,虽然它与另一个变量的大小相同,但它的索引稍大。

使用 Series.reset_index() 将索引删除为默认值后,我得到了最初预期的结果。