Pandas之Dropna滤除缺失数据的实现方法


Posted in Python onJune 25, 2019

约定:

import pandas as pd
import numpy as np
from numpy import nan as NaN

滤除缺失数据

pandas的设计目标之一就是使得处理缺失数据的任务更加轻松些。pandas使用NaN作为缺失数据的标记。

使用dropna使得滤除缺失数据更加得心应手。

一、处理Series对象

通过**dropna()**滤除缺失数据:

se1=pd.Series([4,NaN,8,NaN,5])
print(se1)
se1.dropna()

代码结果:

0    4.0
1    NaN
2    8.0
3    NaN
4    5.0
dtype: float64

0    4.0
2    8.0
4    5.0
dtype: float64

通过布尔序列也能滤除:

se1[se1.notnull()]

代码结果:

0    4.0
2    8.0
4    5.0
dtype: float64

二、处理DataFrame对象

处理DataFrame对象比较复杂,因为你可能需要丢弃所有的NaN或部分NaN。

df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])
df1

代码结果:

0 1 2
0 1.0 2.0 3.0
1 NaN NaN 2.0
2 NaN NaN NaN
3 8.0 8.0 NaN

默认滤除所有包含NaN:

df1.dropna()

代码结果:

0 1 2
0 1.0 2.0 3.0

传入**how=‘all'**滤除全为NaN的行:

df1.dropna(how='all')

代码结果:

0 1 2
0 1.0 2.0 3.0
1 NaN NaN 2.0
3 8.0 8.0 NaN

传入axis=1滤除列:

df1[3]=NaN
df1

代码结果:

0 1 2 3
0 1.0 2.0 3.0 NaN
1 NaN NaN 2.0 NaN
2 NaN NaN NaN NaN
3 8.0 8.0 NaN NaN
df1.dropna(axis=1,how="all")

代码结果:

传入thresh=n保留至少有n个非NaN数据的行:

df1.dropna(thresh=1)

df1.dropna(thresh=3)

代码结果:

0 1 2
0 1.0 2.0 3.0
1 NaN NaN 2.0
2 NaN NaN NaN
3 8.0 8.0 NaN

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
Python彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
python实现自动发送邮件发送多人、群发、多附件的示例
Jan 23 Python
利用ctypes获取numpy数组的指针方法
Feb 12 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
anaconda如何查看并管理python环境
Jul 05 Python
pytorch之添加BN的实现
Jan 06 Python
Python脚本去除文件的只读性操作
Mar 05 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 Python
Python将CSV文件转化为HTML文件的操作方法
Jun 30 Python
Python可视化学习之seaborn调色盘
Feb 24 Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 #Python
Pandas之ReIndex重新索引的实现
Jun 25 #Python
Python中使用__new__实现单例模式并解析
Jun 25 #Python
pyQt5实时刷新界面的示例
Jun 25 #Python
Pandas之MultiIndex对象的示例详解
Jun 25 #Python
Python+threading模块对单个接口进行并发测试
Jun 25 #Python
python简单鼠标自动点击某区域的实例
Jun 25 #Python
You might like
php中一个有意思的日期逻辑处理
2012/03/25 PHP
php后退一页表单内容保存实现方法
2012/06/17 PHP
PHP实现添加购物车功能
2017/03/06 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
Ajax基础知识详解
2017/02/17 Javascript
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
Python性能优化的20条建议
2014/10/25 Python
星球大战与Python之间的那些事
2016/01/07 Python
python如何通过protobuf实现rpc
2016/03/06 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
基于python socketserver框架全面解析
2017/09/21 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
np.random.seed() 的使用详解
2020/01/14 Python
python数据分析:关键字提取方式
2020/02/24 Python
python多线程和多进程关系详解
2020/12/14 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
Linux机考试题
2015/07/17 面试题
工作试用期自我评价
2015/03/10 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书