python数据清理_Python-数据清理

在现实生活中,数据丢失始终是一个问题。诸如机器学习和数据挖掘之类的领域在模型预测的准确性方面面临着严重的问题,因为缺少值会导致数据质量较差。在这些领域中,缺失值处理是使模型更准确和有效的主要重点。

什么时候以及为什么会丢失数据?

让我们考虑对产品进行在线调查。很多时候,人们不会共享与他们有关的所有信息。很少有人会分享他们的经验,但是不会分享他们使用该产品多长时间。很少有人分享他们使用该产品的时间,他们的经历而不是他们的联系信息。因此,总是以某种方式丢失一部分数据,这在实时情况下非常普遍。

现在让我们看看如何使用熊猫处理缺失值(例如NA或NaN)。

# import the pandas libraryimportpandasaspdimportnumpyasnp

df=pd.DataFrame(np.random.randn(5,3),index=['a','c','e','f','h'],columns=['one','two','three'])df=df.reindex(['a','b','c','d','e','f','g','h'])printdf

其输出如下-

one two three

a 0.077988 0.476149 0.965836

b NaN NaN NaN

c -0.390208 -0.551605 -2.301950

d NaN NaN NaN

e -2.000303 -0.788201 1.510072

f -0.930230 -0.670473 1.146615

g NaN NaN NaN

h 0.085100 0.532791 0.887415

使用重新索引,我们创建了一个缺少值的DataFrame。在输出中,NaN表示不是数字。

检查缺失值

为了使检测的缺失值更容易(和不同阵列dtypes),熊猫提供ISNULL()和NOTNULL()功能,这也是对系列和数据帧的对象的方法-

importpandasaspdimportnumpyasnp

df=pd.DataFrame(np.random.randn(5,3),index=['a','c','e','f','h'],columns=['one','two','three'])df=df.reindex(['a','b','c','d','e','f','g','h'])printdf['one'].isnull()

其输出如下-

a False

b True

c False

d True

e False

f False

g True

h False

Name: one, dtype: bool

清理/填充丢失的数据

熊猫提供了多种清除缺失值的方法。fillna函数可以通过以下几种方法用非空数据“填充” NA值。

用标量值替换NaN

以下程序显示了如何将“ NaN”替换为“ 0”。

importpandasaspdimportnumpyasnp

df=pd.DataFrame(np.random.randn(3,3),index=['a','c','e'],columns=['one','two','three'])df=df.reindex(['a','b','c'])printdfprint("NaN replaced with '0':")printdf.fillna(0)

其输出如下-

one two three

a -0.576991 -0.741695 0.553172

b NaN NaN NaN

c 0.744328 -1.735166 1.749580

NaN replaced with '0':

one two three

a -0.576991 -0.741695 0.553172

b 0.000000 0.000000 0.000000

c 0.744328 -1.735166 1.749580

在这里,我们用零值填充;相反,我们还可以填充其他任何值。

向前和向后填充NA

使用“重新索引”一章中讨论的填充概念,我们将填充缺少的值。

方法

行动

填充/填充

填充方法前进

填充/回填

向后填充方法

importpandasaspdimportnumpyasnp

df=pd.DataFrame(np.random.randn(5,3),index=['a','c','e','f','h'],columns=['one','two','three'])df=df.reindex(['a','b','c','d','e','f','g','h'])printdf.fillna(method='pad')

其输出如下-

one two three

a 0.077988 0.476149 0.965836

b 0.077988 0.476149 0.965836

c -0.390208 -0.551605 -2.301950

d -0.390208 -0.551605 -2.301950

e -2.000303 -0.788201 1.510072

f -0.930230 -0.670473 1.146615

g -0.930230 -0.670473 1.146615

h 0.085100 0.532791 0.887415

删除缺失值

如果只想排除缺失值,则将dropna函数与axis参数一起使用。默认情况下,axis = 0,即沿着行,这意味着如果一行中的任何值为NA,那么将排除整个行。

importpandasaspdimportnumpyasnp

df=pd.DataFrame(np.random.randn(5,3),index=['a','c','e','f','h'],columns=['one','two','three'])df=df.reindex(['a','b','c','d','e','f','g','h'])printdf.dropna()

其输出如下-

one two three

a 0.077988 0.476149 0.965836

c -0.390208 -0.551605 -2.301950

e -2.000303 -0.788201 1.510072

f -0.930230 -0.670473 1.146615

h 0.085100 0.532791 0.887415

替换缺少的(或)通用值

很多时候,我们必须用某个特定值替换一个通用值。我们可以通过应用replace方法来实现。

用标量值替换NA是fillna()函数的等效行为。

importpandasaspdimportnumpyasnp

df=pd.DataFrame({'one':[10,20,30,40,50,2000],'two':[1000,0,30,40,50,60]})printdf.replace({1000:10,2000:60})

其输出如下-

one two

0 10 10

1 20 0

2 30 30

3 40 40

4 50 50

5 60 60

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 自动加载jar_JAVA 动态(手动)加载jar文件

//filePath 是jar的绝对路径URL url new URL("file:"filePath);//里面是一个url的数组,可以同时加载多个URLClassLoader loader new URLClassLoader( new URL[]{ url } );//根据类名加载指定类,例:Class class loader.loadClass…

项目管理知识体系指南_MP考前冲刺丨项目管理知识体系指南(PMBOK)串讲(11)...

第一单元:必考知识点08 项目质量管理(下)根本原因分析因果图因果图 Cause and Effect Diagram根本原因分析在被视为特殊偏差的不良结果与飞随机原因之间建立联系,基于这种联系,采取纠正措施,小区在控制图中呈现的特殊偏差。直方图…

nfa状态转换图正规式_0x02 从NFA到DFA

书接上文,上回说道NFA已经可以完全描述正则语言的全部内容。那么,我们在这一章探索一下一个比较复杂的正则表达式在用NFA做匹配的时候会有什么“不足“。NFA匹配的"不足"为了言之有物,不妨设要讨论的模式为d?(c(a|b)*)*(b|c)图1-1…

java filter教程_Java Web Filter 过滤器学习教程(推荐)

一、Filter简介Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功…

python解密_Python解密

我目前正在从事一项家庭作业,我们必须构建一个函数,在其中编写一个三步加密/解密程序.我们必须构建的密码之一是变位/轨道围栏,该围栏接受变量(n)作为要加密消息的“轨道”数.我已经建立了加密,但是我m失去了解密方法.这是针对python的入门级类,因此我们对下面的加密代码等基础…

vue修改计算属性的值_「Vue学习记录五」计算属性和侦听器

1&#xff1a; 计算属性&#xff1a; &#xff08;内置缓存机制&#xff09;当更改age的时候&#xff0c; fullName 函数不执行&#xff1b;当更改fristName的时候&#xff0c; fullName 函数才执行<div id "app"><span>{{fullName}}</span> <…

python把485读回来的转为位_我能用Python读取从计算机上接收到的Modbus RS485数据吗?...

modbus-tk可以编写自己的modbus从站。在下面是一个运行RTU服务器的示例&#xff0c;该服务器有100个保持寄存器&#xff0c;从地址0开始&#xff1a;import sysimport modbus_tkimport modbus_tk.defines as cstfrom modbus_tk import modbus_rtuimport serialPORT 0#PORT /d…

git为私有仓库设置密码_真香!在局域网下行云流水般使用git

最近公司要开发一个新的项目&#xff0c;开发一个新的项目就要有一个好的代码版本管理工具。对于代码开发版本控制工具&#xff0c;我们之前是使用svn这个代码版本控制工具&#xff0c;但是项目经理说统一使用git开发版本控制工具&#xff0c;来到这里我们一般会选择gitee或者g…

xss img onerror java_java后台防止XSS的脚本攻击

import java.util.regex.Pattern;//具体过滤关键字符public class XSSUtil {private static Pattern[] patterns new Pattern[]{// Script fragmentsPattern.compile("", Pattern.CASE_INSENSITIVE),// src...Pattern.compile("src[\r\n]*[\r\n]*\\\(.*?)\\\&…

网口监视报文工具_真是神器!这款网络排查工具!

常用的 ping&#xff0c;tracert&#xff0c;nslookup 一般用来判断主机的网络连通性&#xff0c;其实 Linux 下有一个更好用的网络联通性判断工具&#xff0c;它可以结合ping nslookup tracert 来判断网络的相关特性&#xff0c;这个命令就是 mtr。mtr 全称 my traceroute&…

snmp服务 2003 镜像_美国掌握全球70%根服务器,一旦对中国关闭,我们将无法上网?...

“如果在上网和男朋友(女朋友)之间只能选一个&#xff0c;你会选哪个&#xff1f;”曾经有媒体在街头做这样的调查&#xff0c;出人意料的是很多人都选择了“上网”&#xff1b;因为在现代年轻人看来&#xff0c;如果进入一个没有“不能上网”的生活实在太恐怖了&#xff0c;那…

java写入carbondata_Carbondata使用过程中遇到的几个问题及解决办法

本文总结了几个本人在使用 Carbondata 的时候遇到的几个问题及其解决办法。这里使用的环境是&#xff1a;Spark 2.1.0、Carbondata 1.2.0。必须指定 HDFS nameservices在初始化 CarbonSession 的时候&#xff0c;如果不指定 HDFS nameservices&#xff0c;在数据导入是没啥问题…

商品审核网页界面_Shopee新手指南:Shopee卖家中心用户界面介绍

1.Shopee各站点前台网页链接&#xff1a;2.Shopee各站点后台网页链接3.Shopee APP下载&#xff1a;安卓版下载链接&#xff1a;https://pan.baidu.com/s/1eSp8M1k#list/path%2Fios版&#xff1a;可在App Store中直接搜索下载使用。台湾站点ios版本请搜索关键字“虾皮”下载&…

pdf exe如何提取pdf文件_python应用:如何用python提取pdf文件中的文字

从pdf中提取文字&#xff0c;相信很多人都干过这事&#xff0c;怎么在python中实现呢&#xff0c;今天带大家看看。第一步导入库import PyPDF2第二步导入pdf文件pdf_file open(dataset/laban.1027.pdf, rb)第三步读取pdf并检查加密情况read_pdf PyPDF2.PdfFileReader(pdf_file…

python asyncio tcp server_asyncio异步IO——Streams详解

前言本文翻译自python3.7官方文档——asyncio-stream,译者马鸣谦,邮箱 1612557569qq.com。转载请注明出处。数据流(Streams)数据流(Streams)是用于处理网络连接的高阶异步/等待就绪(async/await-ready)原语,可以在不使用回调和底层传输协议的情况下发送和接收数据。以下是一个用…

java轻量分布式框架_5个强大的Java分布式缓存框架推荐

在开发中大型Java软件项目时&#xff0c;很多Java架构师都会遇到数据库读写瓶颈&#xff0c;如果你在系统架构时并没有将缓存策略考虑进去&#xff0c;或者并没有选择更优的 缓存策略&#xff0c;那么到时候重构起来将会是一个噩梦。本文主要是分享了5个常用的Java分布式缓存框…

python三次样条插值拟合的树行线_数学建模笔记——插值拟合模型(一)

啊好像距离上次写作又过了七天&#xff0c;啊好像我之前计划的一周两三篇&#xff0c;啊辣鸡小说毁我青春&#xff0c;啊我是一只可怜的鸽子。不管怎样&#xff0c;我又回来了&#xff0c;并坚定地更新着hhh。再过两三天就是我们学校数学建模选拔&#xff0c;再过八九天就是期末…

python内置函数open的解释_在python的内置open()函数中缓冲的用途是什么?

Python文档&#xff1a;http&#xff1a;/ / / 2 /图书馆/ functions.html docs.python.org #开放open(name[, mode[, buffering]])上面的文档应该提醒说"可选参数文件缓冲的缓冲所需的缓冲区大小&#xff1a;0均值&#xff0c;均值线1具有积极的价值&#xff0c;任何其他…

keep行走和计步_‎App Store 上的“Keep - 跑步健身计步瑜伽”

【Keep - App Store 年度精选 App】【App Store 官方推荐的移动健身工具】在「Keep」&#xff0c;和2亿运动爱好者共同开启健康生活&#xff01;跟随你的移动健身教练&#xff0c;随时随地练就完美身材。健身中经常遇到的问题&#xff1a;- 工作太忙没有时间去健身房&#xff0…

密度图的密度估计_不同类型的二维密度图小教程

R相关小教程链接&#xff1a;用R构建气泡图案例小教程【小教程】散点图、饼图怎么在我的文章中完美展示小教程热图在论文发表中完美呈现小教程R与密度、函数、变量的微妙关系北京市计算中心医用数据库建设解决方案更多内容&#xff0c;请关注“生信会议”公众号Different types…