Python查询缺失值的4种方法总结
作者:朱小五 发布时间:2023-10-29 13:42:08
在我们日常接触到的Python中,狭义的缺失值一般指DataFrame中的NaN
。广义的话,可以分为三种。
缺失值:在Pandas中的缺失值有三种:np.nan (Not a Number) 、 None 和 pd.NaT(时间格式的空值,注意大小写不能错)
空值:空值在Pandas中指的是空字符串"";
最后一类是导入的Excel等文件中,原本用于表示缺失值的字符“-”、“?”等。
今天聊聊Python中查询缺失值的4种方法。
缺失值 NaN ①
在Pandas中查询缺失值,最常用的⽅法就是isnull()
,返回True表示此处为缺失值。
我们可以将其与any()
⽅法搭配使用来查询存在缺失值的行,也可以与sum()
⽅法搭配使用来查询存在缺失值的列。
isnull()
:对于缺失值,返回True;对于⾮缺失值,返回False。any()
:⼀个序列中有⼀个True,则返回True,否则返回False。sum()
:对序列进行求和计算。
在交互式环境中输入如下命令:
df.isnull()
输出:
在交互式环境中输入如下命令:
df.isnull().any(axis=1)
输出:
在交互式环境中输入如下命令:
df.isnull().sum()
输出:
注:isna()和isnull()的用法是相同的,这里不再演示
缺失值 NaN ②
由于在Pandas中isnull()
方法返回True表示此处为缺失值,所以我们可以对数据集进行切片也可实现找到缺失值。
在交互式环境中输入如下命令:
df[df.isnull().values==True]
输出:
注意:如果某行有多个值是空值,则会重复次数出现,所以我们可以利用df[df.isnull().values==True].drop_duplicates()
来去重。
另外,notnull()
方法是与isnull()
相对应的,使用它可以直接查询非缺失值的数据行。
df[df["A列"].notnull()]
输出:
空值
空值在Pandas中指的是空字符串"",我们同样可以对数据集进行切片找到空值。
在交互式环境中输入如下命令:
df[df["B列"] == ""]
输出:
此外,也可以利用空值与正常值的区别来区分两者,比如isnumeric()
方法检测字符串是否只由数字组成。
在交互式环境中输入如下命令:
df[df["B列"].str.isnumeric() == False ]
输出:
如上所示,同样查询到了数据集中的空值。
字符“-”、“?”等
很多时候,我们要处理的是本地的历史数据文件,在这些Excel中往往并不规范,比如它们有可能会使用“*”、“?”、“—”、“!”等等字符来表示缺失值。
对于这类文本,我们可以使用正则表达式来匹配缺失值。
import re
df[df["C列"].apply(lambda x: len(re.findall('NA|[*|?|!|#|-]', x)) != 0)]
输出:
如上所示,我自定义了匿名函数lambda,作用是在文本列的每一行中查找以下文本值:“NA”、“*”、“?” 、“!” 、“#”、“-”,并检查它找到的列表的长度。如果列表不为零,则表示找到了代表缺失值的字符,因此该行中至少有一个缺失值。
df[df["D列"].apply(lambda x: len(re.findall('NA|[*|?|!|#|-]', x)) != 0)]
输出:
我们可以对不同列都进行同样的缺失值查询,另外也可以根据自己的实际情况,替换正则表达式中代表缺失值的字符。
来源:https://mp.weixin.qq.com/s/HbaOHmdAx2Usk9QrXujM1Q


猜你喜欢
- 下面,我们就从当前时间来取得随机数,调用的时候用包含文件就可以了:<!--#INCLUDE VIRTUAL="/q
- 在上次的爬虫中,抓取的数据主要用到的是第三方的Beautifulsoup库,然后对每一个具体的数据在网页中的selecter来找到它,每一个
- 本文实例分析了Python字符串格式化输出方法。分享给大家供大家参考,具体如下:我们格式化构建字符串可以有3种方法:1 元组占位符m = &
- 1、使用ImageField先安装pillow模块pip install pillow2、在app的models中设置class Image
- 本文实例讲述了Python统计分析模块statistics用法。分享给大家供大家参考,具体如下:一 计算平均数函数mean()>>
- 如果你搞过ASP的开发,你就会为ASP中没有好的完整的调试环境而头疼不己。我收集了网上相关所有信息提示,想给它做成单机的ASP开发错误提示软
- <title>:一个优质网页最重要的元素HTML 中的 <title> 元素用于在下列情况中提供一小段能够代表该网页
- 1、旅行商问题(Travelling salesman problem, TSP)旅行商问题是经典的组合优化问题,要求找到遍历所有城市且每个
- 本文介绍python TK库简单应用(实时显示子进程输出),分享给大家,具体如下:#!/usr/bin/python3.5# -*- cod
- Python图片处理模块PIL(pillow)pywin32的主要作用1.捕获窗口;2.模拟鼠标键盘动作;3.自动获取某路径下文件列表;4.
- 引言Git 中有些操作命令比较长,单词多,不容易记忆。例如把一个dev开发分支合并到master分支,就需要敲:git merge --no
- 数据库是应用开发中必须要掌握的技巧,通常在数据库开发过程中,会有两种不同的方式:直接使用SQL语句,这种方式下,直接编写SQL,简单直观,但
- 1.指定GPU运算如果安装的是GPU版本,在运行的过程中TensorFlow能够自动检测。如果检测到GPU,TensorFlow会尽可能的利
- 什么是作用域程序的执行,离不开作用域,也必须在作用域中才能将代码正确的执行。所以作用域到底是什么,通俗的说,可以这样理解:作用域就是定义变量
- Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户
- 1、为什么要设置headers?在请求网页爬取的时候,输出的text信息中会出现抱歉,无法访问等字眼,这就是禁止爬取,需要通过反爬机制去解决
- Python求取逆序数方法一.pynum = int(input('请输入一个三位整数:'))a = num//100b =
- 作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency
- golang 字符串 int uint int64 uint64 互转字符串 转 intintNum, _ = strconv.Atoi(i
- 一.IO流的操作(1).什么是IO流(Input Output Stream)?IO流说的主要是计算机的输入和输出操作。常见的IO操作,一般