数据清洗--DataFrame中的空值处理方法


Posted in Python onJuly 03, 2018

数据清洗是一项复杂且繁琐的工作,同时也是整个数据分析过程中最为重要的环节。

在python中空值被显示为NaN。首先,我们要构造一个包含NaN的DataFrame对象。

>>> import numpy as np
>>> import pandas as pd
>>> from pandas import Series,DataFrame
>>> from numpy import nan as NaN
>>> data = DataFrame([[12,'man','13865626962'],[19,'woman',NaN],[17,NaN,NaN],[NaN,NaN,NaN]],columns=['age','sex','phone'])
>>> data
 age sex  phone
0 12.0 man 13865626962
1 19.0 woman   NaN
2 17.0 NaN   NaN
3 NaN NaN   NaN

删除NaN

删除NaN所在的行

删除表中全部为NaN的行

>>> data.dropna(axis=0, how='all')
 age sex  phone
0 12.0 man 13865626962
1 19.0 woman   NaN
2 17.0 NaN   NaN

删除表中任何含有NaN的行

>>> data.dropna(axis=0, how='any')
 age sex  phone
0 12.0 man 13865626962

删除NaN所在的列

删除表中全部为NaN的列

>>> data.dropna(axis=1, how='all')
 age sex  phone
0 12.0 man 13865626962
1 19.0 woman   NaN
2 17.0 NaN   NaN
3 NaN NaN   NaN

删除表中任何含有NaN的列

>>> data.dropna(axis=1, how='any')
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3]

注意:axis 就是”轴,数轴“的意思,对应多维数组里的”维“。此处作者的例子是二维数组,所以,axis的值对应表示:0轴(行),1轴(列)。

填充NaN

如果不想过滤(去除)数据,我们可以选择使用fillna()方法填充NaN,这里,作者使用数值'0'替代NaN,来填充DataFrame。

>>> data.fillna(0)
 age sex  phone
0 12.0 man 13865626962
1 19.0 woman   0
2 17.0  0   0
3 0.0  0   0

我们还可以通过字典来填充,以实现对不同的列填充不同的值。

>>> data.fillna({'sex':233,'phone':666})
 age sex  phone
0 12.0 man 13865626962
1 19.0 woman   666
2 17.0 233   666
3 NaN 233   666

以上这篇数据清洗--DataFrame中的空值处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
提升Python程序运行效率的6个方法
Mar 31 Python
python操作redis的方法
Jul 07 Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
TensorFlow数据输入的方法示例
Jun 19 Python
python实现NB-IoT模块远程控制
Jun 20 Python
python3实现windows下同名进程监控
Jun 21 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
python的pip有什么用
Jun 17 Python
Python爬虫爬取微信朋友圈
Aug 06 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
根据DataFrame某一列的值来选择具体的某一行方法
Jul 03 #Python
Django框架的使用教程路由请求响应的方法
Jul 03 #Python
pandas 选择某几列的方法
Jul 03 #Python
Python中pandas dataframe删除一行或一列:drop函数详解
Jul 03 #Python
Python对数据进行插值和下采样的方法
Jul 03 #Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 #Python
python之django母板页面的使用
Jul 03 #Python
You might like
php控制文件下载速度的方法
2015/03/24 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
jQuery中:gt选择器用法实例
2014/12/29 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
详解用python生成随机数的几种方法
2019/08/04 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
文秘专业应届生求职信范文
2013/11/14 职场文书
幼儿园保教管理制度
2014/02/03 职场文书
项目投资意向书
2014/04/01 职场文书
食品安全处置方案
2014/06/14 职场文书
质量月活动总结
2014/08/26 职场文书
公司承诺函范文
2015/01/21 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python