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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
python读取文件名称生成list的方法
Apr 27 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
详解Python3 基本数据类型
Apr 19 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
python实现淘宝购物系统
Oct 25 Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
利用Python计算KS的实例详解
Mar 03 Python
浅析Python的命名空间与作用域
Nov 25 Python
python 如何用terminal输入参数
May 25 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
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
2015/12/31 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
Python下rrdtool模块的基本使用方法
2015/11/13 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
Python SQLite3简介
2018/02/22 Python
python读取txt文件中特定位置字符的方法
2018/12/24 Python
Python中的asyncio代码详解
2019/06/10 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
python 进程的几种创建方式详解
2019/08/29 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
python range实例用法分享
2020/02/06 Python
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
中东奢侈品市场:Coveti
2019/05/12 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
学雷锋演讲稿汇总
2014/05/10 职场文书
个人查摆剖析材料
2014/10/04 职场文书
一年级小学生评语大全
2014/12/25 职场文书