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远程登录代码
Apr 29 Python
Python中利用sqrt()方法进行平方根计算的教程
May 15 Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
Python循环语句之break与continue的用法
Oct 14 Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
Python饼状图的绘制实例
Jan 15 Python
python实现支付宝转账接口
May 07 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
Python2及Python3如何实现兼容切换
Sep 01 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 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
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
Jquery attr("checked") 返回checked或undefined 获取选中失效
2013/10/10 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
一套.net面试题及答案
2016/11/02 面试题
党员培训思想汇报
2014/01/07 职场文书
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
2014年减负工作总结
2014/12/10 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
2019邀请函格式及范文
2019/05/20 职场文书