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去除列表中重复元素的方法
Mar 20 Python
python使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
在Python中移动目录结构的方法
Jan 31 Python
详谈Python基础之内置函数和递归
Jun 21 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
Python猜数字算法题详解
Mar 01 Python
Python 自由定制表格的实现示例
Mar 20 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
Python学习笔记之装饰器
Aug 06 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
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
vue实现抽屉弹窗效果
2020/11/15 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
django中ImageField的使用详解
2020/12/21 Python
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
高校生生产实习自我鉴定
2013/09/21 职场文书
抽样调查项目计划书
2014/04/24 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
酒店开业主持词
2015/07/02 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
JavaScript 对象创建的3种方法
2021/11/17 Javascript
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记