gpt4 book ai didi

python - 将 bool 检查与 & 结合起来不会 "short-circuts"吗?

转载 作者:行者123 更新时间:2023-12-01 03:28:29 25 4
gpt4 key购买 nike

我有一个 Pandas 系列:

2013-09-30           None
2013-10-31 None
2013-11-30 1.47701e+06
2013-12-31 1.47701e+06
2014-01-31 1.47701e+06

Freq: M, Name: test_series, dtype: object

如果我这样做:

pd.notnull(test_series) & np.sign(test_series) == 1

为什么我会收到错误:

*** TypeError: unorderable types: NoneType() < int()

为什么第一个不检查 notnull短路,当 Series 元素为 None 时,第二次检查根本没有完成?

最佳答案

我认为不是,因为 &| 可与 booelan Series 配合使用。

因此,它通过运算符 & 按元素将第一个条件中的一个 mask 与另一个 mask 结合起来。

#convert to numeric, if not possible get NaN
test_series = pd.to_numeric(test_series, errors='coerce')

mask1 = pd.notnull(test_series)
mask2 = np.sign(test_series) == 1
print (mask1)
2013-09-30 False
2013-10-31 False
2013-11-30 True
2013-12-31 True
2014-01-31 True
Name: test_series, dtype: bool

print (mask2)
2013-09-30 False
2013-10-31 False
2013-11-30 True
2013-12-31 True
2014-01-31 True
Name: test_series, dtype: bool

print (mask1 & mask2)
2013-09-30 False
2013-10-31 False
2013-11-30 True
2013-12-31 True
2014-01-31 True
Name: test_series, dtype: bool

关于python - 将 bool 检查与 & 结合起来不会 "short-circuts"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41208832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com