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实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
windows下Python实现将pdf文件转化为png格式图片的方法
Jul 21 Python
python 对象和json互相转换方法
Mar 22 Python
快速解决pandas.read_csv()乱码的问题
Jun 15 Python
对Pandas MultiIndex(多重索引)详解
Nov 16 Python
Python enumerate函数功能与用法示例
Mar 01 Python
django迁移文件migrations的实现
Mar 31 Python
Django 实现 Websocket 广播、点对点发送消息的代码
Jun 03 Python
python3读取autocad图形文件.py实例
Jun 05 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 Python
python脚本框架webpy的url映射详解
Nov 20 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
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
Python中的文件和目录操作实现代码
2011/03/13 Python
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python比较两个列表大小的方法
2015/07/11 Python
python读写json文件的简单实现
2017/04/11 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
python找出因数与质因数的方法
2019/07/25 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
简单的Python人脸识别系统
2020/07/14 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
PHP如何去执行一个SQL语句
2016/03/05 面试题
.NET面试问题集
2015/12/08 面试题
大学四年个人自我小结
2014/03/05 职场文书
工程质量保证书
2015/05/09 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
PHP中多字节字符串操作实例详解
2021/08/23 PHP