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
猜你喜欢
- replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(st
- 简介这是一篇介绍网页设计原则的文章。在互联网迅速发展的今天,各种web 2.0网站竞争激烈,你死我亡。Jini, D
- 1.计算长度value = "wangdianchao"# 计算字符个数(长度)number = len(value)p
- 为了能够使用ERWin能够进行基于MySQL数据库的物理设计,可以采用以下方法步骤(假设你已经有了一个设计好的LOGICAL MODEL):
- 用于制作自动化微信聊天图片,通过图片生成段子视频根据一个txt文档input.txtL 一路走过来好热啊
- 目录一、简介思路高德地图API二、获取经纬度三、路线规划(四种方式)获取出行路线数据处理四、演示效果五、结尾一、简介路径规划中包括步行、公交
- 题目描述1275. 找出井字棋的获胜者 - 力扣(LeetCode)A 和 B 在一个 3 x&nb
- 问题描述如下:解决方案如下:下图中字体调整为18及以上效果如下:来源:https://blog.csdn.net/appleyuchi/ar
- 鉴于ASP脚本语言是在服务器端IIS或PWS中解释和运行,并可动态生成普通的HTML网页,然后再传送到客户端供浏览的这一特点。我们要在本机上
- 语言:Python IDE:Python.IDE需求 做出彩虹效果颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩
- 酝酿了将近一个春夏秋冬的腾讯网首页终于亮剑!反响热烈!让我们来分享它成功背后的酸甜苦辣吧。腾讯网首页改版终于开花结果。于2008年3月25日
- 【OpenCV】⚠️高手勿入! 半小时学会基本操作 ⚠️ 对象测量概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大.
- 这代表将模型加载到指定设备上。其中,device=torch.device("cpu")代表的使用cpu,而device
- 问题:python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码---可能情况:1.mysql数据库各项没有设置编码,默认为&
- 交互设计师的一项重要工作就是进行产品原型设计(Prototype Design)。而产品原型设计最基础的工作,就是画出站点的大体wirefr
- 本文实例为大家分享了用KNN算法手写体识别的具体代码,供大家参考,具体内容如下#!/usr/bin/python #coding:utf-8
- 字符串转list数组str = '1,2,3'arr = str.split(',')gpu_ids分配na
- 网上找了很多资料,都不理想。其实ubuntu20以后的版本,很多功能都预装好了,安装django也没有以前的版本那么复杂。很简单,只需要几步
- 第一步:首先定义一个视图函数,用于提供数据,实现每页显示数据个数,返回每页请求数据from django.shortcuts import
- 本文实例讲述了Python结合ImageMagick实现多张图片合并为一个pdf文件的方法。分享给大家供大家参考,具体如下:前段时间买了不少