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字符串排序方法
Aug 29 Python
Python线程详解
Jun 24 Python
Python3匿名函数用法示例
Jul 25 Python
Python tkinter label 更新方法
Oct 11 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
详解django+django-celery+celery的整合实战
Mar 19 Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
Python实现封装打包自己写的代码,被python import
Jul 12 Python
python包的导入方式总结
Mar 02 Python
LeetCode189轮转数组python示例
Aug 05 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
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
javascript强大的日期函数代码分享
2013/09/04 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
JavaScript数组对象赋值用法实例
2015/08/04 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
Python实现对PPT文件进行截图操作的方法
2015/04/28 Python
python opencv之分水岭算法示例
2018/02/24 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
Python Gitlab Api 使用方法
2019/08/28 Python
python反转列表的三种方式解析
2019/11/08 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
python 绘制场景热力图的示例
2020/09/23 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
如何用JQuery进行表单验证
2013/05/29 面试题
银行实习生的自我评价
2013/12/09 职场文书
借款协议书
2014/04/12 职场文书
工程承包协议书
2014/04/22 职场文书
2015年教师节活动总结
2015/03/20 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
人口与计划生育责任书
2015/05/09 职场文书
余世维讲座观后感
2015/06/11 职场文书
spring注解 @PropertySource配置数据源全流程
2022/03/25 Java/Android