python pandas消除空值和空格以及 Nan数据替换方法


Posted in Python onOctober 30, 2018

在人工采集数据时,经常有可能把空值和空格混在一起,一般也注意不到在本来为空的单元格里加入了空格。这就给做数据处理的人带来了麻烦,因为空值和空格都是代表的无数据,而pandas中Series的方法notnull()会把有空格的数据也纳入进来,这样就不能完整地得到我们想要的数据了,这里给出一个简单的方法处理该问题。

方法1:

既然我们认为空值和空格都代表无数据,那么可以先得到这两种情况下的布尔数组。

这里,我们的DataFrame类型的数据集为df,其中有一个变量VIN,那么取得空值和空格的布尔数组为NONE_VIN。然后通过该布尔数组,就能得到我们要的数据了

NONE_VIN = (df["VIN"].isnull()) | (df["VIN"].apply(lambda x: str(x).isspace()))
df_null = df[NONE_VIN]
df_not_null = df[~NONE_VIN]

方法2:

直接使用Series的.apply方法来修改变量VIN中的每个值。如果发现是空格,就返回Nan,否则就返回原值。

df["VIN"]=df["VIN"].apply(lambda x: np.NaN if str(x).isspace() else x)
df_null = df[df["VIN"].isnull()]
df_not_null = df[df["VIN"].notnull()]

将dataframe中的NaN替换成希望的值

import pandas as pd
df1 = pd.DataFrame([{'col1':'a', 'col2':1}, {'col1':'b', 'col2':2}])
df2 = pd.DataFrame([{'col1':'a', 'col3':11}, {'col1':'c', 'col3':33}])

data = pd.merge(left=df1, right=df2, how='left', left_on='col1', right_on='col1')
print data
# 将NaN替换为None
print data.where(data.notnull(), None)

输出结果:

col1 col2 col3
0 a  1 11
1 b  2 NaN
 col1 col2 col3
0 a  1 11
1 b  2 None

总结:

方法1的思路就是直接判定是否为空格,把空格纳入到选择中来。方法2的思路是先把空格转换为NaN,然后正常使用.isnull()或.notnull()来得到我们想要的数据。

以上这篇python pandas消除空值和空格以及 Nan数据替换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python多线程扫描端口示例
Jan 16 Python
python中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
Python中%是什么意思?python中百分号如何使用?
Mar 20 Python
Python装饰器基础概念与用法详解
Dec 22 Python
简单了解python高阶函数map/reduce
Jun 28 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
Nov 26 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
Python如何爬取qq音乐歌词到本地
Jun 01 Python
Python如何给函数库增加日志功能
Aug 04 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 #Python
解决Shell执行python文件,传参空格引起的问题
Oct 30 #Python
Python格式化输出字符串方法小结【%与format】
Oct 29 #Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 #Python
pycharm执行python时,填写参数的方法
Oct 29 #Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 #Python
解决Pycharm运行时找不到文件的问题
Oct 29 #Python
You might like
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
取得父标签
2006/11/14 Javascript
javascript  Error 对象 错误处理
2008/05/18 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
浅析vue数据绑定
2017/01/17 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
一款纯css3实现简单的checkbox复选框和radio单选框
2014/11/05 HTML / CSS
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
应聘编辑职位自荐信范文
2014/01/05 职场文书
2014年教师节寄语
2014/04/03 职场文书
小学班级特色活动方案
2014/08/31 职场文书
男方婚礼答谢词
2015/01/20 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis