Pandas series.all()返回nan

时间:2013-08-02 16:18:46

标签: python pandas

这里有一些代码:

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),正无穷大和负无穷大评估为真,因为这些>不等于零。"

这看起来并不一致......

谢谢, 安

1 个答案:

答案 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