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 MysqlDb模块安装及其使用详解
Feb 23 Python
Python实现决策树C4.5算法的示例
May 30 Python
对Pandas MultiIndex(多重索引)详解
Nov 16 Python
python执行精确的小数计算方法
Jan 21 Python
Python利用字典破解WIFI密码的方法
Feb 27 Python
python基于property()函数定义属性
Jan 22 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
Feb 26 Python
python为QT程序添加图标的方法详解
Mar 09 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
Python 实现RSA加解密文本文件
Dec 30 Python
pycharm 关闭search everywhere的解决操作
Jan 15 Python
PYTHON InceptionV3模型的复现详解
May 06 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 Static关键字实用方法
2010/06/04 PHP
jQuery 源码分析笔记
2011/05/25 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
PHP实现八皇后算法
2019/05/06 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
JavaScript"模拟事件"的注意要点详解
2019/02/13 Javascript
javascript实现留言板功能
2020/02/08 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
python的unittest测试类代码实例
2017/12/07 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
优秀党员转正的自我评价
2013/10/06 职场文书
师范应届生求职信
2013/11/15 职场文书
大学四年个人自我小结
2014/03/05 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
2014年教研员工作总结
2014/12/23 职场文书
物业工程部岗位职责
2015/02/11 职场文书
开网店计划分析
2019/07/30 职场文书
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS