【发布时间】:2017-02-24 10:11:01
【问题描述】:
>>> s = pd.Series([float('nan')])
>>> s.any()
False
>>> s.all()
True
这不是很奇怪吗? any(返回是否有任何元素在请求的轴上为真)和all(返回是否所有元素在请求的轴上为真)的文档相似,但行为上的差异对我来说似乎没有意义。
什么给了?
【问题讨论】:
-
也许它实际上是在做 "no elements are false",而不是 "all elements are true",而
nan使它成为三个-重视逻辑? -
@jonrsharpe,我猜在这种情况下 NaN 将被完全忽略 - 检查:
pd.Series([]).any()和pd.Series([]).all() -
是的,这可能是
pandas默认处理 NaN 的问题。 -
我无法理解的是为什么:
pd.Series([]).all()给True,all([])也返回True(我也无法理解这个......)跨度> -
发现了这个深入研究的问题:stackoverflow.com/questions/3275058/…