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实现list反转实例汇总
Nov 11 Python
python使用三角迭代计算圆周率PI的方法
Mar 20 Python
Python网络编程之TCP与UDP协议套接字用法示例
Feb 02 Python
Python实现替换文件中指定内容的方法
Mar 19 Python
对Python w和w+权限的区别详解
Jan 23 Python
python获取地震信息 微信实时推送
Jun 18 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
Tensorflow限制CPU个数实例
Feb 06 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
django上传文件的三种方式
Apr 29 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生成缩略图的代码
2011/01/12 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
js控制框架刷新
2008/08/01 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
学习python类方法与对象方法
2016/03/15 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
浅谈对yield的初步理解
2017/05/29 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
幼儿园大班开学教师寄语
2014/04/03 职场文书
高校教师个人总结
2015/02/10 职场文书
工作失职自我检讨书
2015/05/05 职场文书
小学英语听课心得体会
2016/01/14 职场文书
python可视化大屏库big_screen示例详解
2021/11/23 Python
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python