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之编写类之二方法
Oct 11 Python
Python的randrange()方法使用教程
May 15 Python
Python中的urllib模块使用详解
Jul 07 Python
深入理解NumPy简明教程---数组3(组合)
Dec 17 Python
Python编程之微信推送模板消息功能示例
Aug 21 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 Python
python 实现两个npy档案合并
Jul 01 Python
python dir函数快速掌握用法技巧
Dec 09 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 16 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 similar_text 字符串的相似性比较函数
2010/05/26 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
php上传excel表格并获取数据
2017/04/27 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
javascript实现简单页面倒计时
2021/03/02 Javascript
Web服务器框架 Tornado简介
2014/07/16 Python
python分割文件的常用方法
2014/11/01 Python
给Python初学者的一些编程技巧
2015/04/03 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
python实现推箱子游戏
2020/03/25 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
员工入职担保书范文
2014/04/01 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
拔河比赛口号
2014/06/10 职场文书
实习护士自荐信
2014/06/21 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技