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中多线程的创建及基本调用方法
Jul 08 Python
Python中几种导入模块的方式总结
Apr 27 Python
Python实现购物车功能的方法分析
Nov 10 Python
python绘制双柱形图代码实例
Dec 14 Python
Python实现App自动签到领取积分功能
Sep 29 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 Python
Tensorflow 实现分批量读取数据
Jan 04 Python
python文件和文件夹复制函数
Feb 07 Python
windows下python安装pip方法详解
Feb 10 Python
python实现图像拼接功能
Mar 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中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
PHP经典面试题集锦
2015/03/19 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
Prototype Selector对象学习
2009/07/23 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
浅谈React高阶组件
2018/03/28 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
python使用递归解决全排列数字示例
2014/02/11 Python
Python设计模式之观察者模式实例
2014/04/26 Python
python测试驱动开发实例
2014/10/08 Python
python通过smpt发送邮件的方法
2015/04/30 Python
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
python爬虫之自制英汉字典
2019/06/24 Python
python安装scipy的方法步骤
2019/06/26 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
应用艺术毕业生的自我评价
2013/12/04 职场文书
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
干部个人对照检查材料
2014/08/25 职场文书
教师个人教学反思
2016/02/23 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android
详解Spring事件发布与监听机制
2021/06/30 Java/Android