如何检查Pandas DataFrame中的任何值是否为NaN

如何检查Pandas DataFrame中的任何值是否为NaN

本文来自 codeday ,作者 codeday

Python Pandas中,检查DataFrame是否具有一个(或多个)NaN值的最佳方法是什么?

我知道函数pd.isnan,但是这会为每个元素返回一个布尔数据框架. This post就在这里也没有完全回答我的问题.

最佳答案

jwilner的回应是现货.我正在探索是否有更快的选择,因为根据我的经验,求平面阵列(奇怪地)比计数更快.这段代码似乎更快:

df.isnull().values.any()
复制代码

例如:

In [2]: df = pd.DataFrame(np.random.randn(1000,1000))

In [3]: df[df > 0.9] = pd.np.nan

In [4]: %timeit df.isnull().any().any()
100 loops, best of 3: 14.7 ms per loop

In [5]: %timeit df.isnull().values.sum()
100 loops, best of 3: 2.15 ms per loop

In [6]: %timeit df.isnull().sum().sum()
100 loops, best of 3: 18 ms per loop

In [7]: %timeit df.isnull().values.any()
1000 loops, best of 3: 948 ?s per loop
复制代码

df.isnull().sum().sum()有点慢,但当然还有其他信息–NaN的数量.

发布了296 篇原创文章 · 获赞 221 · 访问量 54万+

猜你喜欢

转载自blog.csdn.net/qq_36387683/article/details/102852178