置顶说明:最近发现使用np.isnan总是会报错,使用pandas的pd.isna则没有问题,建议时候后者。
原内容:
最近发现,对于pandas中的NaN值是无法直接使用 ==np.nan来判断空值,以为在数学中,inf==inf,而nan != nan,可以通过编写代码中发现下面的情况。
>>> np.nan == np.nan
False
那么我们在判断一个值为空值的可以下面的形式
>>print(np.isnan(np.nan))
True
可以得知,对空值的判断不能使用直接的数学比较形式==,而需要使用numpy自带的方法进行判断。
比如获取某列有缺失的行信息,可以使用以下代码,可以打印有空值的行
print(i,'包含空值的DF为:',the_have_null_df[np.isnan(the_have_null_df[col_name])])