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

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


当前回答

df.apply(axis=0, func=lambda x : any(pd.isnull(x)))

将检查每一列是否包含Nan。

其他回答

df.apply(axis=0, func=lambda x : any(pd.isnull(x)))

将检查每一列是否包含Nan。

根据您正在处理的数据类型,您还可以在执行EDA时通过将dropna设置为False来获得每列的值计数。

for col in df:
   print df[col].value_counts(dropna=False)

适用于分类变量,但当你有很多唯一值时就不那么适用了。

我们可以通过使用seaborn moduleheatmap生成热图来查看数据集中存在的空值

import pandas as pd
import seaborn as sns
dataset=pd.read_csv('train.csv')
sns.heatmap(dataset.isnull(),cbar=False)

这将只包括至少有一个null/na值的列。

 df.isnull().sum()[df.isnull().sum()>0]

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