pandas 缺失值与空值处理的实现方法


Posted in Python onOctober 12, 2019

1.相关函数

  • df.dropna()
  • df.fillna()
  • df.isnull()
  • df.isna()

2.相关概念

空值:在pandas中的空值是""

缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可

3.函数具体解释

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

函数作用:删除含有空值的行或列

axis:维度,axis=0表示index行,axis=1表示columns列,默认为0

how:"all"表示这一行或列中的元素全部缺失(为nan)才删除这一行或列,"any"表示这一行或列中只要有元素缺失,就删除这一行或列

thresh:一行或一列中至少出现了thresh个才删除。

subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得列或行不会删除(有axis决定是行还是列)

inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。

例子:

df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
        "toy": [np.nan, 'Batmobile', 'Bullwhip'],
         "born": [pd.NaT, pd.Timestamp("1940-04-25"),pd.NaT]})
 
print df

pandas 缺失值与空值处理的实现方法

默认参数:删除行,只要有空值就会删除,不替换。

print df.dropna()
print df

pandas 缺失值与空值处理的实现方法

print "delete colums"
print df.dropna(axis=1) #delete col

pandas 缺失值与空值处理的实现方法

print "所有值全为缺失值才删除"
print df.dropna(how='all')

pandas 缺失值与空值处理的实现方法

print "至少出现过两个缺失值才删除"
print df.dropna(thresh=2)

pandas 缺失值与空值处理的实现方法

print "删除这个subset中的含有缺失值的行或列"
print df.dropna(subset=['name', 'born'])

pandas 缺失值与空值处理的实现方法

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

函数作用:填充缺失值

value:需要用什么值去填充缺失值

axis:确定填充维度,从行开始或是从列开始

method:ffill:用缺失值前面的一个值代替缺失值,如果axis =1,那么就是横向的前面的值替换后面的缺失值,如果axis=0,那么则是上面的值替换下面的缺失值。backfill/bfill,缺失值后面的一个值代替前面的缺失值。注意这个参数不能与value同时出现

limit:确定填充的个数,如果limit=2,则只填充两个缺失值。

示例:

df = pd.DataFrame([[np.nan, 2, np.nan, 0],
         [3, 4, np.nan, 1],
         [np.nan, np.nan, np.nan, 5],
        [np.nan, 3, np.nan, 4]],
         columns=list('ABCD'))
 
print df
 
print "横向用缺失值前面的值替换缺失值"
print df.fillna(axis=1,method='ffill')
 
print "纵向用缺失值上面的值替换缺失值"
print df.fillna(axis=0,method='ffill')

pandas 缺失值与空值处理的实现方法

print df.fillna(0)

pandas 缺失值与空值处理的实现方法

不同的列用不同的值填充:

pandas 缺失值与空值处理的实现方法

对每列出现的替换值有次数限制,此处限制为一次

pandas 缺失值与空值处理的实现方法

DataFrame.isna()

判断是不是缺失值:

pandas 缺失值与空值处理的实现方法

isnull同上。

替换空值:

df = pd.DataFrame([[np.nan, 2, np.nan, 0],
         [3, 4, "", 1],
         [np.nan, np.nan, np.nan, 5],
        [np.nan, 3, "", 4]],
         columns=list('ABCD'))
 
print df

pandas 缺失值与空值处理的实现方法

如上,缺失值是NAN,空值是没有显示。

替换空值代码:需要把含有空值的那一列提出来单独处理,然后在放进去就好。

clean_z = df['C'].fillna(0)
clean_z[clean_z==''] = 'hello'
df['C'] = clean_z
print df

pandas 缺失值与空值处理的实现方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python编程-将Python程序转化为可执行程序[整理]
Apr 09 Python
python实现简单温度转换的方法
Mar 13 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
详解Python3序列赋值、序列解包
May 14 Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
Oct 11 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
Python原始套接字编程实例解析
Jan 29 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 Python
python中如何打包用户自定义模块
Sep 23 Python
Python headers请求头如何实现快速添加
Nov 03 Python
python双向链表实例详解
May 25 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 #Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 #Python
Python数据处理篇之Sympy系列(五)---解方程
Oct 12 #Python
详解Python绘图Turtle库
Oct 12 #Python
Python中的list与tuple集合区别解析
Oct 12 #Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 #Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
Oct 12 #Python
You might like
php浏览历史记录的方法
2015/03/10 PHP
PHP多文件上传实例
2015/07/09 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
使用jQuery操作HTML的table表格的实例解析
2016/03/13 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
Python检测网站链接是否已存在
2016/04/07 Python
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
python的socket编程入门
2018/01/29 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
python requests库的使用
2021/01/06 Python
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
商超业务员岗位职责
2014/03/12 职场文书
科研课题实施方案
2014/03/18 职场文书
群众路线教育党课主持词
2014/04/01 职场文书
报告会主持词
2014/04/02 职场文书
自主招生推荐信范文
2014/05/10 职场文书
公开承诺书格式
2014/05/21 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android