Python pandas库中的isnull()详解

yipeiwu_com5年前Python基础

问题描述

python的pandas库中有一个十分便利的isnull()函数,它可以用来判断缺失值,我们通过几个例子学习它的使用方法。

首先我们创建一个dataframe,其中有一些数据为缺失值。

 import pandas as pd
 import numpy as np
 df = pd.DataFrame(np.random.randint(10,99,size=(10,5)))
 df.iloc[4:6,0] = np.nan
 df.iloc[5:7,2] = np.nan
 df.iloc[7,3] = np.nan
 df.iloc[2:3,4] = np.nan

得到的结果如下所示

    0  1   2   3   4
 0 63.0 89 58.0 94.0 10.0
 1 44.0 77 66.0 54.0 14.0
 2 25.0 41 93.0 56.0  NaN
 3 43.0 26 27.0 53.0 44.0
 4  NaN 98 45.0 32.0 45.0
 5  NaN 28  NaN 72.0 10.0
 6 69.0 92  NaN 24.0 61.0
 7 51.0 22 35.0  NaN 72.0
 8 83.0 32 93.0 62.0 25.0
 9 48.0 54 83.0 30.0 79.0

我们先来运行以下isnull()看会出现什么结果

df.isnull()
    0   1   2   3   4
 0 False False False False False
 1 False False False False False
 2 False False False False  True
 3 False False False False False
 4  True False False False False
 5  True False  True False False
 6 False False  True False False
 7 False False False  True False
 8 False False False False False
 9 False False False False False

可见程序返回了布尔值,该处为缺失值,返回True,该处不为缺失值,则返回False

其它

直接使用isnull()并不能很直观的反应缺失值的信息。

我们再调用其他命令进行尝试。

df.isnull().any()
 0   True
 1  False
 2   True
 3   True
 4   True
dtype: bool

可见df.isnull().any()会判断哪些列包含缺失值,该列存在缺失值则返回True,反之False。

df.isnull().sum()
 0  2
 1  0
 2  2
 3  1
 4  1
 dtype: int64

isnull().sum()就更加直观了,它直接告诉了我们每列缺失值的数量。

以上这篇Python pandas库中的isnull()详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python变量命名的7条建议

前言 Quora 问答社区的一个开发者投票统计,程序员最大的难题是:如何命名(例如:给变量,类,函数等等),光是如何命名一项的选票几乎是其它八项的投票结果的总和。如何给变量命名,如何让它...

Python函数返回不定数量的值方法

Python的函数是可以return多个值的,但其本质上还是返回单个值,只是利用了tuple的自动打包,将多个值打包成单个tuple返回。 使用代码验证: def func_a():...

Python实现的一个自动售饮料程序代码分享

写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序。当然,只是实现基本功能,欢迎...

详解Python命令行解析工具Argparse

最近在研究pathon的命令行解析工具,argparse,它是Python标准库中推荐使用的编写命令行程序的工具。 以前老是做UI程序,今天试了下命令行程序,感觉相当好,不用再花大把时间...

对Django中内置的User模型实例详解

User模型 User模型是这个框架的核心部分。他的完整的路径是在django.contrib.auth.models.User。 字段 内置的User模型拥有以下的字段: 1、us...