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 基础学习教程
Feb 08 Python
python3.3使用tkinter开发猜数字游戏示例
Mar 14 Python
python 将md5转为16字节的方法
May 29 Python
浅谈解除装饰器作用(python3新增)
Oct 15 Python
Python lxml解析HTML并用xpath获取元素的方法
Jan 02 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
详解python运行三种方式
May 13 Python
pytorch多GPU并行运算的实现
Sep 27 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
python识别验证码的思路及解决方案
Sep 13 Python
python和anaconda的区别
May 06 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压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
asp 的 分词实现代码
2007/05/24 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
js实现表格字段排序
2014/02/19 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
python实现每次处理一个字符的三种方法
2014/10/09 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
蔻驰法国官网:COACH法国
2018/11/14 全球购物
联欢晚会主持词
2014/03/25 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
亮剑观后感300字
2015/06/05 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
JavaScript函数柯里化
2021/11/07 Javascript
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技