数据清洗--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 相关文章推荐
使用url_helper简化Python中Django框架的url配置教程
May 30 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
Python读取excel指定列生成指定sql脚本的方法
Nov 28 Python
python 执行文件时额外参数获取的实例
Dec 18 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
python使用socket 先读取长度,在读取报文内容示例
Sep 26 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
Oct 12 Python
Python: glob匹配文件的操作
Dec 11 Python
python实现银行账户系统
Feb 22 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
Sep 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 分页原理详解
2009/08/21 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
PHP加密解密类实例分析
2015/04/20 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
JQuery1.6 使用方法三
2011/11/23 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
Python二分法搜索算法实例分析
2015/05/11 Python
Python中进程和线程的区别详解
2017/10/29 Python
详解python数据结构和算法
2019/04/18 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
C# Debug和Testing相关面试题
2015/10/25 面试题
《寓言两则》教学反思
2014/02/27 职场文书
食堂标语大全
2014/06/11 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
离婚协议书范本样本
2014/08/19 职场文书
大学生考试作弊检讨书
2014/09/21 职场文书
走进科学观后感
2015/06/18 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
Redis入门教程详解
2021/08/30 Redis