在Python Pandas中,检查DataFrame是否有一个(或多个)NaN值的最佳方法是什么?
我知道函数pd。isnan,但这将返回每个元素的布尔值的DataFrame。这篇文章也没有完全回答我的问题。
在Python Pandas中,检查DataFrame是否有一个(或多个)NaN值的最佳方法是什么?
我知道函数pd。isnan,但这将返回每个元素的布尔值的DataFrame。这篇文章也没有完全回答我的问题。
当前回答
为此,我们可以使用df.isna().any()语句。这将检查我们所有的列,如果有任何缺失值或nan返回True,如果没有缺失值则返回False。
其他回答
只是用 math.isnan(x),如果x是NaN(不是数字)则返回True,否则返回False。
另一种方法是dropna,检查长度是否相等:
>>> len(df.dropna()) != len(df)
True
>>>
如果你需要知道有多少行有“一个或多个nan”:
df.isnull().T.any().T.sum()
或者如果你需要取出这些行并检查它们:
nan_rows = df[df.isnull().T.any()]
import missingno as msno
msno.matrix(df) # just to visualize. no missing value.
要找出特定列中哪些行有nan:
nan_rows = df[df['name column'].isnull()]