• pandas数据类型判断(三)数据判断


    1.函数:空值判断

    1)判断数值是否为空用 pd.isna,pd.isnull,np.isnan
    2)判断字符串是否为空用 pd.isna,pd.isnull;
    3)判断时间是否为空用 pd.isna,pd.isnull,np.isnat

    参数:obj:标量或数组

    返回:布尔或布尔数组

    说明:
    1.NA值如None或np.nan,NaT将映射True值。''或np.inf不被视为NA值
    2.pandas.options.mode.use_inf_as_na = True#视为na值
    3.Series,DataFrame也有此方法;full,notfull是别名 
    4.pd.isna 是pandas0.21版本引入的,能判别最大范围的空值。
    实例1:缺省值判断-标量参数
    1.案例如下:
    >>> pd.isna(None)
    True
    >>>
    >>> pd.isnull(None)
    True
    >>>
    >>> np.nan(None)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'float' object is not callable
    >>>
    >>> np.isnat(None)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: ufunc 'isnat' is only defined for datetime and timedelta.

    2.几种空值的判断 是== 还是is

    ==和is对None,''是有效的,而np.nan的比较只能用is

    >>> None==None
    True
    >>> None is None
    True
    >>>
    >>>
    >>> np.nan==np.nan
    False
    >>> np.nan is np.nan
    True
    >>> np.nan is None
    False
    >>>
    >>> '' is ''
    True
    >>> ''==''
    True

     但是np.inf无穷大就与np.nan不一样(哈哈)

    >>> np.inf is np.inf
    True
    >>> np.inf == np.inf
    True
    >>> np.inf != np.inf
    False

    实例2:缺省值判断-ndarrays数组 

    >>> array = np.array([[1, np.nan, 3], [4, 5, np.nan]])
    >>> pd.isna(array) #array([[False, True, False],[False, False, True]])
    array([[False,  True, False],
           [False, False,  True]])

    实例3:缺省值判断-索引,返回一个布尔值的ndarray

    >>> index = pd.DatetimeIndex(["2019-07-05", "2019-07-06", None])
    >>> b=pd.isna(index)
    >>> b
    array([False, False,  True])
    >>> type(b)
    <class 'numpy.ndarray'>
    >>>

    实例4:缺省值判断-Series

    >>> s= pd.Series([1, 2,np.nan,np.inf,''])
    >>> s.isna().tolist()
    [False, False, True, False, False]

     实例5:缺省值判断-DataFrame 

    dates=pd.date_range('2019-1-11',periods=4).tolist()
    dates[3]=pd.NaT
    df=pd.DataFrame([[10,20.1,'s1'],[11,20.2,''],[12,np.nan,None],[np.nan,20.4,'s4']] ,columns=list('ABC'))
    df['D']=dates
    df

     

    pd.isna(df.B).tolist()  #[False, False, True, False]
    np.isnan(df.B).tolist() #[False, False, True, False]
     
    pd.isna(df.C).tolist()  #[False, False, True, False]空字符串不为空
     
    np.isnat(df.D).tolist() #[False, False, False, True]
    pd.isna(df.D).tolist()  #[False, False, False, True]
     
    pd.isna(df['D'])        # 等价df['D'].isna()

     

    2.函数:非空元素判断

  • 相关阅读:
    Nginx 静态资源缓存设置
    Ubuntu Linux 与 Windows 7双系统安装教程(图文)
    配置可以通过http协议访问的svn服务器
    CentOS下搭建SVN服务器
    LINUX服务器下用root登录ftp
    CentOS 6下编译安装MySQL 5.6
    Jenkins代码管理
    python学习:备份文档并压缩为zip格式
    centos 7 双网卡建网桥脚本实现
    python学习:使用正则收集ip信息
  • 原文地址:https://www.cnblogs.com/wqbin/p/12032073.html
Copyright © 2020-2023  润新知