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通过ssh-powershell监控windows的方法
Jun 02 Python
使用Python的Tornado框架实现一个Web端图书展示页面
Jul 11 Python
Python实现的文本对比报告生成工具示例
May 22 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
Python中numpy模块常见用法demo实例小结
Mar 16 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
关于Python作用域自学总结
Jun 10 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
Python简单实现词云图代码及步骤解析
Jun 04 Python
python如何操作mysql
Aug 17 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数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
easyui validatebox验证
2016/04/29 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
高中毕业的自我鉴定
2013/12/09 职场文书
统计岗位职责
2014/02/21 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
毕业生对母校寄语
2015/02/26 职场文书
2015年女职工工作总结
2015/05/15 职场文书
写给同事的离职感言
2015/08/04 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
python中pandas对多列进行分组统计的实现
2021/06/18 Python
JavaScript ES6的函数拓展
2022/01/18 Javascript
python双向链表实例详解
2022/05/25 Python