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 20 Python
Python Web服务器Tornado使用小结
May 06 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 Python
python 爬取微信文章
Jan 30 Python
一篇文章快速了解Python的GIL
Jan 12 Python
python语言中with as的用法使用详解
Feb 23 Python
python3库numpy数组属性的查看方法
Apr 17 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
Flask框架单例模式实现方法详解
Jul 31 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
通过python-pptx模块操作ppt文件的方法
Dec 26 Python
Python Pandas数据分析之iloc和loc的用法详解
Nov 11 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
解析dedeCMS验证码的实现代码
2013/06/07 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
php+mysql+jquery实现日历签到功能
2017/02/27 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
使用Python对MySQL数据操作
2017/04/06 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
院药学专业个人求职信
2013/09/21 职场文书
创业计划书的内容步骤和要领
2014/01/04 职场文书
幼儿园教师培训制度
2014/01/16 职场文书
红旗方阵解说词
2014/02/12 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
党支部季度考核意见
2015/06/02 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python
详解Python为什么不用设计模式
2021/06/24 Python
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸