浅谈pandas中对nan空值的判断和陷阱
作者:S_o_l_o_n 发布时间:2021-01-06 12:40:20
标签:pandas,nan,空值
pandas基于numpy,所以其中的空值nan和numpy.nan是等价的。numpy中的nan并不是空对象,其实际上是numpy.float64对象,所以我们不能误认为其是空对象,从而用bool(np.nan)去判断是否为空值,这是不对的。
对于pandas中的空值,我们该如何判断,并且有哪些我们容易掉进去的陷阱,即不能用怎么样的方式去判断呢?
可以判断pandas中单个空值对象的方式:
1、利用pd.isnull(),pd.isna();
2、利用np.isnan();
3、利用is表达式;
4、利用in表达式。
不可以用来判断pandas单个空值对象的方式:
1、不可直接用==表达式判断;
2、不可直接用bool表达式判断;
3、不可直接用if语句判断。
示例:
import pandas as pd
import numpy as np
na=np.nan
# 可以用来判断空值的方式
pd.isnull(na) # True
pd.isna(na) # True
np.isnan(na) # True
na is np.nan # True
na in [np.nan] # True
# 不可以直接用来判断的方式,即以下结果和我们预期不一样
na == np.nan # False
bool(na) # True
if na:
print('na is not null') # Output: na is not null
# 不可以直接用python内置函数any和all
any([na]) # True
all([na]) #True
来源:https://blog.csdn.net/S_o_l_o_n/article/details/100661937


猜你喜欢
- Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,据说,在使用oracle时应有这样的思想,那就
- 在事务的ACID特性中,原子性(A)、一致性(C)、持久性(D)由undo log和redo log实现,隔离性(I)由锁+MVCC实现un
- 二分查找算法:简单的说,就是将一个数组先排序好,比如按照从小到大的顺序排列好,当给定一个数据,比如target,查找target在数组中的位
- 以下列出了两种数据库的方法:ASP+Access20001.要获取的ID值字段属性必须设为:自动编号(我们假设字段名为recordID)2.
- 迭代数组NumPy中引入了 nditer 对象来提供一种对于数组元素的访问方式。一、单数组迭代1. 使用 nditer 访问数组的每个元素&
- 我就废话不多说了,直接上代码吧!#!/usr/bin/python3# -*- coding: utf-8 -*-import codecs
- 链表链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址。由于每个结
- Python 风格规范(Google)本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护。如果你关注的是 Google
- Go语言实现互斥锁、随机数、time、Listimport ( "container/list"  
- 定义本地站点在Dreamweaver中制作网站,您必须定义一个本地站点,它是您的计算机上任意位置的一个
- tf2.0的三个优点:1、方便搭建网络架构;2、自动求导3、GPU加速(便于大数据计算)安装过程(概要提示)step1:安装annacond
- ActiveMQ是java开发的消息中间件服务。可以支持多种协议(AMQP,MQTT,OpenWire,Stomp),默认的是OpenWir
- 这篇文章主要介绍了python识别html主要文本框过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- python在安装的时候,就自带了很多模块,我们把这些模块称之为标准库,其中,有一个是使用频率比较高的,就是 os 。这个库中方法和属性众多
- 手写数字识别(小白入门)今早刚刚上了节实验课,关于逻辑回归,所以手有点刺挠就想发个博客,作为刚刚入门的小白,看到代码运行成功就有点小激动,这
- 安装:yum -y install php php-devel php-pear
- 1. 概述对于社区,没有一个明确的定义,有很多对社区的定义,如社区是指在一个网络中,有一组节点,它们彼此都相似,而组内的节点与网络中的其他节
- 项目涉及的数据库表并不多,但每个select、insert、update和delete都去手动拼接字符串,是很低效的,尤其在时常要修改结构的
- 前言:了解了一下MySQL数据库的基本语句,这章了解一下它的高级操作,包括用户增删除与给予相对应的权限一.克隆表1.1克隆方法一(将表与内容
- //TransmitFile实现下载protected void Button1_Click(object sender, EventArg