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

我知道函数pd。isnan,但这将返回每个元素的布尔值的DataFrame。这篇文章也没有完全回答我的问题。


当前回答

如果你需要知道有多少行有“一个或多个nan”:

df.isnull().T.any().T.sum()

或者如果你需要取出这些行并检查它们:

nan_rows = df[df.isnull().T.any()]

其他回答

另一种方法是dropna,检查长度是否相等:

>>> len(df.dropna()) != len(df)
True
>>> 

加上霍布斯的精彩回答,我对Python和熊猫很陌生,所以如果我错了,请指出来。

要找出哪些行有nan:

nan_rows = df[df.isnull().any(1)]

将执行相同的操作,而不需要通过将any()的轴指定为1来检查'True'是否在行中存在。

import missingno as msno
msno.matrix(df)  # just to visualize. no missing value.

试试下面的方法

df.isnull().sum()

or

df.isna().values.any()

Df.isnull ().any().any()应该这样做。