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. Jackson 动态Bean

    为了解决json字符串有很多属性, 但是不必每个属性都映射到pojo的属性. @JsonProperty : 标记一个方法是一个属性的getter或setter方法, 也即把java属性和json域关 ...

  2. UML概念模型

    UML概念模型 UML(Unified Modeling Language):统一建模语言,为面向对象开发系统的产品进行说明.可视化.和编制文档的标准语言 面向对象程序设计 面向对象基本概念:对象.类 ...

  3. DNS欺诈的三种简单方法总结

    使用arpspoof.ettercap以及driftnet的简单组合. ①arpsppof+driftnet arpspoof -i eth0 -t 目标ip 目标网关 driftnet -i eth ...

  4. PB 之多行标题报表

    第一种 1.添加一个text,将背景色选为非透明色:position中的layer,选为foreground,这样就可以拖动列宽了         2.在position属性标签页的width里,点右 ...

  5. java之hibernate之基于外键的双向一对一关联映射

    这篇讲解 基于外键的双向一对一关联映射 1.考察如下信息,人和身份证之间是一个一对一的关系.表的设计 2.类结构 Person.java public class Person implements ...

  6. Window 使用Nginx 部署 Vue 并把nginx设为windows服务开机自动启动

    1.编译打包Vue项目 在终端输入 npm run build 进行打包编译.等待... 打包完成生成dist文件夹,这就是打包完成的文件. 我们先放着,进行下一步. 2下载Nginx 下载地址: h ...

  7. Java序列化流

    1.什么是序列化流 序列化就是把Java对象“流化”,序列化后的Java对象可以保存到本地文件系统,或者通过Socket传输到其他的服务器. Java中对象序列化有以下特点: 1)类实现java.io ...

  8. IOS - 总结下swift使用GCD 多线程(二)GCD和DispatchQueue

    1.前言  iOS中处理多核并发的技术有两种分别是:`Grand Central Dispatch`(以下简称`GCD`)和`NSOperationQueue`框架.iOS开发的老司机们在程序开发中处 ...

  9. 【转载】 C#中List集合使用First方法查找符合条件的第一个元素

    在C#的List集合相关操作中,很多时候需要从List集合中查找出符合条件的第一个元素对象,如果确认在List集合中一定存在符合条件的元素,则可以使用First方法来查找,First方法调用格式为Fi ...

  10. sourceTree 3.X免注册[学习]

    一. 在路径C:\****\AppData\Local\Atlassian\SourceTree下创建accounts.json文件 [ { "$id": "1" ...