pandas 空数据处理方法详解
作者:蔡文君 发布时间:2022-08-18 00:29:01
这篇文章主要介绍了pandas 空数据处理方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
方法一:直接删除
1.查看行或列是否有空格(以下的df为DataFrame类型,axis=0,代表列,axis=1代表行,以下的返回值都是行或列索引加上布尔值)
isnull方法
查看行:df.isnull().any(axis=1)
查看列:df.isnull().any(axis=0)
notnull方法:
查看行:df.notnull().all(axis=1)
查看列:df.notnull().all(axis=0)
例子:
df.isnull().any(axis=1) # 检测行内是否有空值
0 False
1 True
2 False
3 True
4 False
5 True
6 False
7 True
8 False
9 False
dtype: bool
注意点:以上方法都可以用~取反的办法获取相反的结果
2.在1的前提下使用df.loc[],可取出1中筛选出数据的具体数据如:
df.loc[df.isnull().any(axis=1)]
取出这几行的索引可用属性index如:df.loc[df.isnull().any(axis=1)].index
得到这些索引后可以使用drop方法进行删除如:
注意:drop方法中的axis值与其他方法相反,axis=0表示行,=1表示列。
df.drop(labels=drop_index, axis=0)
总结下来为4步:
一.使用isnull或notnull筛选:df.isnull().any(axis=0)
二.使用loc取出具体数据:df.loc[df.isnull().any(axis=1)]
三:取出这些数据的索引:df.loc[df.isnull().any(axis=1)].index
四.使用drop删除:df.drop(labels=drop_index, axis=0)
方法二:填充空值
步骤和方法一前几步相同
isnull()
notnull()
dropna(): 过滤丢失数据(df.dropna() 可以选择过滤的是行还是列(默认为行):axis中0表示行,1表示的列)
fillna(): 填充丢失数据(可以选择自主添加数据,或者用表中原有的数据进行补充)
1.使用dropna(不常用):df.dropna(axis=0)
2.使用fillna(常用):
一.df.fillna(value=666)给所有的控制赋值为666
二.df.fillna(method='ffill', axis=0) # axis=0表示在垂直方向填充(axis值:0为垂直,1为水平),使用上方的值对空值进行填充,组合起来就是,使用垂直方向上方的值对当前位置的值进行填充
三.df.fillna(method='bfill', axis=1) # axis=1表示在水平方向填充(axis值为0垂直1为水平),bfill表示使用后面的值对空值进行填充,组合起来就是,使用水平方向右边的值对当前位置的值进行填充
总结:ffill(前)和bfill(后)决定前或后,axis决定垂直或水平
来源:https://www.cnblogs.com/caiwenjun/p/11778378.html
猜你喜欢
- 如何用POP3接收电子邮件?POP3大行其道,我看见朋友已经用Jmail和POP3接收邮件了。该如何做?以Jmail4.1为例,我们演示一下
- 参考Tensorflow Machine Leanrning Cookbooktf.ConfigProto()主要的作用是配置tf.Sess
- 在一个update和insert操作频繁的表中,少量数据测试的时候运行良好,在实际运营中,因数据量比较大(21万条记录),会出现死锁现象,用
- 当管理SQL Server内在的帐户和密码时,我们很容易认为这一切都相当的安全。毕竟,你的SQL Server系统被保护在防火墙里,而且还有
- 一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片
- 通常的情况是,我们一般会载入一个模板文件,然后用 Context渲染它,最后返回这个处理好的HttpResponse对象给用户。 我们已经优
- ASP使用xmlhttp获取远程网页内容,解决乱码问题方法一:<%function getHTTPPage(url)on error
- 1 abstract验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中。传统的字符型验证安全性已经名存实亡的情
- 并发与锁多个线程共享数据的时候,如果数据不进行保护,那么可能出现数据不一致现象,使用锁,信号量、条件锁互斥锁1. 互斥锁,是使用一把锁把代码
- python天数转日期字符串在利用python读取Excel的时候, 日期格式的单元格读取出来是数字,该数字表示1990年01月01日到该日
- 安装pygal,可参阅:pip和pygal的安装实例教程基本XY线:import pygalfrom math import cos&quo
- 1:创建用户 create temporary tablespace user_temp tempfile 'D:\app\topw
- 核心提示:VB读取MP3文件帧的信息比特率,采样频率,播放时间Private Sub Command1_Click()On Error Go
- 0、什么时候会用到virtualenv?假设系统中的两个应用,其中A应用对库LibFoo的版本要求为1,而B应用对同一个库LibFoo的版本
- 使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:1.如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就
- 代码如下:ALTER proc [dbo].[sp_common_paypal_AddInfo] ( @paypalsql va
- #!/usr/bin/env python#coding=utf-8import osfrom pyinotify import Watch
- 一、前言今天我们将用Python来创建一个属于自己的音乐播放器。为此,我们将使用三个软件包:Tkinter:用于UIPygame:播放音乐o
- 概率论啊概率论,差不多忘完了。基于概率论的分类方法:朴素贝叶斯1. 概述贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称
- 兼容IE6的第一步就是单独对IE进行兼容,你针对IE6所写的代码只影响IE6;有几种方法可以区分开IE6:IE特有条件注释、CSS选择器、J