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简单进程锁代码实例
Apr 27 Python
tensorflow实现softma识别MNIST
Mar 12 Python
python如何实现内容写在图片上
Mar 23 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
PyQt5实现简易电子词典
Jun 25 Python
python实现猜拳小游戏
Apr 05 Python
python 实现生成均匀分布的点
Dec 05 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
Python colormap库的安装和使用详情
Oct 06 Python
Python实现Excel自动分组合并单元格
Feb 22 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 裁剪图片成固定大小代码方法
2009/09/09 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
使用PHP编写发红包程序
2015/07/22 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
Python代理抓取并验证使用多线程实现
2013/05/03 Python
理解Python中的With语句
2015/02/02 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
python logging日志模块以及多进程日志详解
2018/04/18 Python
python web框架中实现原生分页
2019/09/08 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
中专自我鉴定范文
2013/10/16 职场文书
期末考试动员演讲稿
2014/01/10 职场文书
2015年女职工工作总结
2015/05/15 职场文书
原告离婚代理词
2015/05/23 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL