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读文件逐行处理的示例代码分享
Dec 27 Python
利用python批量给云主机配置安全组的方法教程
Jun 21 Python
Python从零开始创建区块链
Mar 06 Python
Django中Model的使用方法教程
Mar 07 Python
python获取指定字符串中重复模式最高的字符串方法
Jun 29 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 Python
python实现各种插值法(数值分析)
Jul 30 Python
python tkinter组件使用详解
Sep 16 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
详解python 内存优化
Aug 17 Python
python logging模块的使用详解
Oct 23 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
一个简单计数器的源代码
2006/10/09 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
基于python的列表list和集合set操作
2019/11/24 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
安装多个版本的TensorFlow的方法步骤
2020/04/21 Python
Python 字符串池化的前提
2020/07/03 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
百家讲坛观后感
2015/06/12 职场文书
《小小的船》教学反思
2016/02/18 职场文书
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL