【发布时间】:2013-09-12 10:15:19
【问题描述】:
我的 numpy 数组使用 np.nan 来指定缺失值。当我遍历数据集时,我需要检测这些缺失值并以特殊方式处理它们。
我天真地使用了numpy.isnan(val),除非val 不在numpy.isnan() 支持的类型子集中,否则效果很好。例如,缺少数据可能出现在字符串字段中,在这种情况下我得到:
>>> np.isnan('some_string')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Not implemented for this type
除了编写一个捕获异常并返回False 的昂贵包装器之外,还有什么方法可以优雅高效地处理这个问题?
【问题讨论】:
-
pandas有pandas.isnull():我不确定这是否满足您的需求,所以一些示例数据可能很好。 -
@Marius:
pandas.isnull()似乎工作得很好。我目前处理的唯一破坏numpy.isnan()的数据类型是字符串,pandas.isnull()处理得很好。事实上,它似乎可以很好地处理我扔给它的所有任意对象。你有什么特别关心的问题吗?否则,您可能希望将您的评论作为完整的答案提交,因为它似乎是规范的答案,至少对于 pandas 用户而言。