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实现每次处理一个字符的三种方法
Oct 09 Python
python开发之thread实现布朗运动的方法
Nov 11 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
python字典值排序并取出前n个key值的方法
Oct 17 Python
在python tkinter中Canvas实现进度条显示的方法
Jun 14 Python
pandas的连接函数concat()函数的具体使用方法
Jul 09 Python
Python CSV文件模块的使用案例分析
Dec 21 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
Django模型验证器介绍与源码分析
Sep 08 Python
如何利用python创作字符画
Jun 25 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中使用Oracle数据库(6)
2006/10/09 PHP
js 匿名调用实现代码
2009/06/19 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
python3.x实现发送邮件功能
2018/05/22 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
Python列表元素常见操作简单示例
2019/10/25 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
培训主管岗位职责
2014/02/01 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
计划生育个人总结
2015/03/02 职场文书
2015年行政部工作总结
2015/04/28 职场文书
写给女朋友的保证书
2015/05/09 职场文书
spring boot实现文件上传
2022/08/14 Java/Android