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 相关文章推荐
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
python学习之编写查询ip程序
Feb 27 Python
举例讲解Python中的list列表数据结构用法
Mar 12 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
NumPy统计函数的实现方法
Jan 21 Python
Python使用type动态创建类操作示例
Feb 29 Python
如何在C++中调用Python
May 21 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
JS 网站性能优化笔记
2011/05/24 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python中的pprint折腾记
2015/01/21 Python
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
python变量命名的7条建议
2019/07/04 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
详解Python yaml模块
2020/09/23 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
儿科护士实习自我鉴定
2013/10/17 职场文书
物流专业大学应届生求职信
2013/11/03 职场文书
新教师工作感言
2014/02/16 职场文书
负责人任命书范本
2014/06/04 职场文书
基层党支部整改方案
2014/10/25 职场文书
处级干部考察材料
2014/12/24 职场文书
2015年司法所工作总结
2015/04/27 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL