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的lambda匿名函数的简单介绍
Apr 25 Python
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
python开发之文件操作用法实例
Nov 13 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
Python迭代器与生成器基本用法分析
Jul 26 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
Python编程flask使用页面模版的方法
Dec 28 Python
Python帮你识破双11的套路
Nov 11 Python
python suds访问webservice服务实现
Jun 26 Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 Python
如何用Python徒手写线性回归
Jan 25 Python
Python可视化学习之seaborn调色盘
Feb 24 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
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
php生成HTML文件的类方法
2019/10/11 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
python ssh 执行shell命令的示例
2020/09/29 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
职专应届生求职信
2013/11/16 职场文书
艺术设计专业个人求职信范文
2013/12/11 职场文书
网络工程师职业规划
2014/02/10 职场文书
经典广告词大全
2014/03/14 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
试用期辞职信范文
2015/03/02 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python