【发布时间】:2020-05-26 15:59:03
【问题描述】:
为什么下面的代码会返回False?
>>> pd.Series([np.nan]) | pd.Series([True])
0 False
dtype: bool
【问题讨论】:
-
看起来像一个错误,因为交换收益率
True。应该在他们的 github 中打开一个问题。 -
这很有趣。请注意,
np.nan or True的计算结果为nan,基本上,nan将在您的操作中传播。 超级奇怪的是实际上bool(np.nan)将是True,更奇怪的是,pd.Series([np.nan],dtype=np.bool)为您提供了一个带有单个True的系列跨度> -
@juanpa.arrivillaga 为了让故事更有趣,
pd.NA(相对于np.nan)不会传播。 -
Here 的相关讨论来自 pandas GitHub 页面。
-
确实很有趣,因为 np.logical_or(np.nan, True) 是真的。