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 相关文章推荐
python 提取文件的小程序
Jul 29 Python
python函数返回多个值的示例方法
Dec 04 Python
python操作日期和时间的方法
Mar 11 Python
python统计cpu利用率的方法
Jun 02 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
Jul 13 Python
详解如何在Apache中运行Python WSGI应用
Jan 02 Python
python图形工具turtle绘制国际象棋棋盘
May 23 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
通过实例了解python property属性
Nov 01 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
Jan 21 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 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语法(2)
2006/10/09 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
详解Vue路由自动注入实践
2019/04/17 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
Python实现Linux监控的方法
2019/05/16 Python
详解python编译器和解释器的区别
2019/06/24 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
安全横幅标语
2014/06/09 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery