这里有一些代码:
s = pandas.Series([numpy.nan, False])
s.all()
将返回nan
。有没有办法让它忽略系列中的nan
,即为上述情况返回False
?
我已经检查了numpy.all()(http://docs.scipy.org/doc/numpy/reference/generated/numpy.any.html)上的文档,其中说的是
"不是数字(NaN),正无穷大和负无穷大评估为真,因为这些>不等于零。"
这看起来并不一致......
谢谢, 安
答案 0 :(得分:0)
正如评论所示,以下内容正确评估了pandas中的False
In [12]: s
Out[12]:
0 NaN
1 False
dtype: object
此方法在评估之前首先删除nan
值
In [14]: s.dropna().all()
Out[14]: False
In [15]: s.all()
Out[15]: False
我想指出这是True
,因为bool(np.nan)
是True
(我碰巧认为这应该给出错误,但那是一个不同的问题)
In [13]: s.astype(bool)
Out[13]:
0 True
1 False
dtype: bool