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项目发布为exe可执行程序过程分享
Oct 23 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
Python语法快速入门指南
Oct 12 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
简单谈谈Python中的json与pickle
Jul 19 Python
Scrapy的简单使用教程
Oct 24 Python
python清理子进程机制剖析
Nov 23 Python
python读文件保存到字典,修改字典并写入新文件的实例
Apr 23 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
python实现自动登录
Sep 17 Python
Python根据成绩分析系统浅析
Feb 11 Python
python os模块简单应用示例
May 23 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基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
浅谈js的ajax的异步和同步请求的问题
2016/10/07 Javascript
基本DOM节点操作
2017/01/17 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
深入探究node之Transform
2017/07/20 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
《生命的药方》教学反思
2014/04/08 职场文书
门店店长岗位职责
2015/04/14 职场文书
培养联系人考察意见
2015/06/01 职场文书
尼克胡哲观后感
2015/06/08 职场文书
催款函怎么写
2015/06/24 职场文书
员工规章制度范本
2015/08/07 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
vue实现列表垂直无缝滚动
2022/04/08 Vue.js