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正则分组的应用
Nov 10 Python
python数组过滤实现方法
Jul 27 Python
Python中单、双下划线的区别总结
Dec 01 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
selenium+python设置爬虫代理IP的方法
Nov 29 Python
python 为什么说eval要慎用
Mar 26 Python
postman模拟访问具有Session的post请求方法
Jul 15 Python
Python操作Mongodb数据库的方法小结
Sep 10 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
python烟花效果的代码实例
Feb 25 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
May 21 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计算两个日期相差天数的代码
2015/12/23 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
jQuery1.6 使用方法一
2011/11/23 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
javascript常用的方法分享
2015/07/01 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
python使用pipeline批量读写redis的方法
2019/02/18 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Django REST framework 视图和路由详解
2019/07/19 Python
Python 硬币兑换问题
2019/07/29 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
python属于解释语言吗
2020/06/11 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
Django权限控制的使用
2021/01/07 Python
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
国际经济贸易专业推荐信
2013/11/06 职场文书
职位说明书范文
2014/05/07 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
24年收藏2000多部退役军用电台
2022/02/18 无线电
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python