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.函数:非空元素判断

pandas数据类型判断(三)数据判断的更多相关文章

  1. 随机生成一份试卷,试卷的种类分为单选、多选、判断三种题型。nodejs6.0 mysql

    背景:从数据库中,随机生成一份试卷,试卷的种类分为单选.多选.判断三种题型. 首先我需要生成随机数id(在这之前我需要知道数据库中各个题型的题数,这样我才能设置随机数),并依据生成的随机数id,去查找 ...

  2. Python 数据分析:Pandas 缺省值的判断

    Python 数据分析:Pandas 缺省值的判断 背景 我们从数据库中取出数据存入 Pandas None 转换成 NaN 或 NaT.但是,我们将 Pandas 数据写入数据库时又需要转换成 No ...

  3. Token验证的流程及如何准确的判断一个数据的类型

    Token验证的流程: 1,客户端使用用户名跟密码请求登录:2,服务端收到请求,去验证用户名与密码:3,验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端:4,客户端收到 T ...

  4. 判断js数据类型和clone

    判断返回js数据类型 function judgeType(arg){//判断返回js数据类型 return Object.prototype.toString.call(arg).slice(8,- ...

  5. 判断json数据是否为空

    json数据是没有length这个属性的 ,所以不能直接用.length()方法 我们可以先遍历,然后根据遍历次数求长度 1.在IE上这样遍历json:(js代码) var jsonLength = ...

  6. Jmeter—4 添加断言 判断响应数据是否符合预期

    发出请求之后,通过添加断言可以判断响应数据是否是我们的预期结果. 1 在Jmeter中发送一个登录的http请求(参数故意输入错误).结果肯定是登陆失败啦. 但结果树中http请求的图标显示‘绿色’表 ...

  7. go golang 判断base64数据 获取随机字符串 截取字符串

    go golang 判断base64数据 获取随机字符串 截取字符串 先少写点,占个坑,以后接着加. 1,获取指定长度随机字符串 func RandomDigits(length int) strin ...

  8. 判断DataTale中判断某个字段中包含某个数据

    // <summary> /// 判断DataTale中判断某个字段中包含某个数据 /// </summary> /// <param name="dt&quo ...

  9. JavaScript基础知识(三个判断、三个循环)

    三个判断 if…else…只会执行其中一个条件 如果if条件中只有一个值,那么会默认转布尔: if(1=="1"){ // 当括号中条件为true时,执行此处的代码 console ...

  10. JavaScript三种判断语句和三元运算符

    三种判断语句 1.if结构 语法:if(条件){条件满足时执行的代码块} 2.if else结构 语法:if(条件){条件满足时执行的代码块}   else{条件不满足时执行的代码块} 3.if el ...

随机推荐

  1. python3 turtle

    一.turtle 1.操控画笔画图,turtle相当于笔头(x头?),有方向 2.https://docs.python.org/3.6/library/turtle.html 二.移动和绘制 imp ...

  2. java8新特性(2)--接口的默认方法

    1.默认方法的定义和作用 在Java8以前的版本中,由接口定义的方法是抽象的,不包括方法体.JDK8版本的发布改变了这一点,其中给接口添加了一个新的功能:默认方法.默认方法允许为接口方法定义默认实现. ...

  3. 最简单的Python3多线程实现

    最简单的实现了一下Python的多线程: import threading def write_dbs(i): print(i) if __name__ == '__main__': for i in ...

  4. c#连接Access数据库及增删改查作

    access:版本2003(后缀.mdb,新版access可另存为2003兼容版) using: using System;using System.Data;using System.Windows ...

  5. WebSocket 转

    即时通信常用手段 1.第三方平台 谷歌.腾讯 环信等多如牛毛,其中谷歌即时通信是免费的,但免费就是免费的并不好用.其他的一些第三方一般收费的,使用要则限流(1s/限制x条消息)要么则限制用户数. 但稳 ...

  6. docker 容器和镜像常用命令整理

  7. input里面的提示文字修改(placeholder里的文字修改,el-input也适用)

    input::-webkit-input-placeholder { /* WebKit browsers */ color: red; } input:-moz-placeholder { /* M ...

  8. Django:web认识,jinja2模块,如何安装Django

    一内容概要 1.HTTP协议 1.1简介 ​ 超文本传输协议(英文:Hyper Text Transfer Protocol,HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是 ...

  9. 智表(ZCELL)插件产品选型说明书,市场主流插件对比,帮您选型

    智表(ZCELL)插件产品选型说明书,市场主流插件对比,帮您选型. 说明书下载:地址 一.    我们为什么需要智表插件产品 客户早已养成EXCEL中的操作习惯,BS架构下,普通的网页交互,与客户习惯 ...

  10. Python学习日记(六) 浅深copy

    浅深copy即完全复制一份和部分复制一份 浅深copy在列表数据量较大时不建议使用,比较消耗内存资源 1.赋值运算 l1 = [1,'s',[1,2,3]] l2 = l1 print(id(l1), ...