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正则表达式匹配HTML页面编码
Apr 08 Python
详解python脚本自动生成需要文件实例代码
Feb 04 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
Django实现组合搜索的方法示例
Jan 23 Python
使用Django简单编写一个XSS平台的方法步骤
Mar 25 Python
python实现字符串完美拆分split()的方法
Jul 16 Python
python 并发编程 多路复用IO模型详解
Aug 20 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
python实现引用其他路径包里面的模块
Mar 09 Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 Python
pandas DataFrame.shift()函数的具体使用
May 24 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
python字符串的常用操作方法小结
2016/05/21 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
大学生村官任职感言
2014/01/09 职场文书
工地安全检查制度
2014/02/04 职场文书
2015年工程师工作总结
2015/04/30 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
签字仪式主持词
2015/07/03 职场文书
2016党校学习心得体会
2016/01/07 职场文书
教师读书活动心得体会
2016/01/14 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
MySQL数据迁移相关总结
2021/04/29 MySQL
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python