Python中处理无效数据的详细教程(附案例实战)

3f6a7ab0347a4af1a75e6ebadee63fc1.gif

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


647feae6a565475f9ee1aaee8cc9d25d.png

目录

1.无效数据的概念

2.无效数据的处理方法

2.1缺失值处理

2.2重复值处理

2.3异常值处理

3.如何避免无效数据?

4.实战案例


 

1.无效数据的概念

        无效数据是指不符合数据收集目的或数据收集标准的数据。这些数据可能来自于不准确的测量、缺失值、错误标注、虚假的数据源或其他问题。无效数据可能会对数据分析结果产生误导,因此需要在数据分析之前进行过滤和处理。

无效数据的类型包括但不限于以下几种:

  1. 缺失值:缺失值是指在数据集中没有收集到足够的信息来完全确定其值的数据点。缺失值可以是由于数据收集过程中的误差、数据源的不确定性、数据点之间的相互作用等原因产生的。在数据分析中,缺失值可能会对数据集的质量和模型的准确性产生负面影响。

  2. 重复值:重复值是指在数据集中重复出现的数据点。在数据集中,每个数据点都应该是唯一的,即不存在两个相同的数据点。重复值可能会对数据分析和建模产生负面影响,因为它们可能会掩盖数据集中的重要信息。

  3. 异常值:异常值是指在数据集中偏离平均值或常见值的数据点。异常值可以是由于数据收集过程中的误差、数据源的不确定性、数据点之间的相互作用等原因产生的。异常值可能会对数据分析和建模产生负面影响,因为它们可能会掩盖数据集中的重要信息,或者导致模型产生错误的结论。

2.无效数据的处理方法

2.1缺失值处理

        缺失值处理是指在数据分析过程中,针对数据集中存在缺失值的数据点进行的处理和重新处理。缺失值处理的目的是消除缺失值对数据集的影响,提高数据集的质量和模型的准确性。

缺失值处理的方法包括以下几种:

  1. 填充均值:将缺失值填充为数据集中该值所在列的均值。

  2. 填充中位数:将缺失值填充为数据集中该值所在列的中位数。

  3. 填充最大最小值:将缺失值填充为数据集中该值所在列的最大最小值。

  4. 使用其他数据点的信息填充缺失值:根据数据集中的其他数据点的信息,使用统计方法或其他算法来填充缺失值。

  5. 删除缺失值:将缺失值所在的数据点从数据集中删除。

        在处理缺失值时,需要根据具体情况进行决策。填充均值和使用其他数据点的信息填充缺失值通常适用于数据集中存在少量缺失值的情况。使用其他数据点的信息填充缺失值和删除缺失值适用于数据集中存在大量缺失值的情况。此外,缺失值处理的方法也需要考虑到数据集的完整性和一致性,以确保数据分析和建模的准确性。

案例演示

首先导入我们演示的数据集

import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
data = pd.read_csv('test.csv')
data

a2401dd7a0b948a0beac604c4a697069.png

 我们可以使用isnull来查看缺失值个数

36d571527f914d31a1f23713252d6655.png

可以看出姓名列是没有缺失值,年龄列有1个缺失值,余额列有两个缺失值。

1.填充均值 

比如我们想要将年龄列中的缺失值用均值来填充,首先可以看一下年龄列均值是多少

b3793a6316d842fb86049071a6ddbf8e.png

 

接着使用fillna()函数填充缺失值,第一个参数是填充的值,这里我们使用年龄的均值,也就是前面的24.25,可以使用int()转化为整数,inplace=True表示在原数据上修改,默认为False。修改之后我们再次查看数据发现年龄列的缺失值已经使用均值24填充。 

11b2cac04d30471188a2df9a88f70b4e.png

 2.填充中位数

还是以年龄为例,查看年龄列的中位数

0dd2dc4cd92543a0883355994b420b32.png

使用中位数进行填充 

60cec91ade104853b391a00349ef1215.png

3.填充最大最小值

以年龄为例,查看最大最小值

fcd4011066584fb8ad7e9e3ac4e9dada.png

使用最大最小值填充 

9cde39d458244b70bfe726ee40f9b406.png

4.前向填充/后向填充

前向填充就是将缺失值所在位置的上一个值作为填充值填充缺失数据。

后向填充就是将缺失值所在位置的下一个值作为填充值填充缺失数据。

88c8a94e3c134909bf8feb0280c4c7fb.png

 但是如果我们在使用后向填充的时候,最后一个数据是缺失值的话,那么最后一个缺失值将会遗漏。所以我们可以前向和后向结合起来就可以做到万无一失,比如下面的示范:

e9c0ceb5fb31465e8c10ba452d53b561.png

5.删除缺失值

删除的话直接使用dropna即可,需要在原数据上操作的话可以加个inplace=True。

5f3be7635e30475dace5896650716bc9.png

2.2重复值处理

重复值的话一般都是采取删除处理,因为相同的数据出现了n次都是没有意义的,一次就够。

案例演示

首先导入演示数据集

61398e04256543fca932aa7f7353e2e0.png

我们可以先使用any函数和duplicated函数来检测数据是否存在重复值,如果返回结果为True说明数据存在重复值;如果返回结果为False说明数据不存在重复值。

2937dc3b00d944f388a23c0170e89be7.png

 前面我们导入数据的时候就发现李四数据是有重复的,所以这里检测的结果为True。删除的话直接使用drop_duplicates函数即可。

a35365d5a3f045deb2ac42a54327a251.png

2.3异常值处理

        异常值是指在数据集中偏离通常模式或规律的值,可以是正常情况的异常值,也可以是异常情况的异常值。

        正常情况的异常值。比如我们想建立居民收入水平的时候,那些收入极其高或低极端数据会影响模型的效果,所以我们一般要进行剔除。

        异常情况的异常值。比如数值型变量中出现负数或其他不符合常理的值等等。

检测方法1

使用describe()方法来查看数值型变量是否存在极端值

15b7754321e64419be2ccb597a856154.png

检测方法2

通过画出箱线图的方式来展示数据分布情况

6eb2863489eb4285ab9f1bc6c3598aa2.png

 比如上图中的第五幅图就明显存在极端值。

处理的方法就是剔除这些异常数据,这个方式很灵活。比如前面我们发现累计票房一般都是在100000以内,却出现了700000的极端数据,我们就可以采取以下方式挑选出正常数据:

a346c7f00e2843e99a7562706bc920a8.png

如果我们有多个条件的话可以使用()和&/|字符来结合使用,&表示and交集的意思,|表示or并集的意思。比如下图我们就挑选出累计票房小于100000并且场均人次小于100的数据:

3f23dc324d81424ea9508fc69b0349b5.png

3.如何避免无效数据?

        那我觉得就需要在获取数据的源头来防止无效数据的产生,这样也能较少花在处理无效数据的时间成本上。获取数据一般就是通过爬虫获取或从数据库中提取。爬虫的话,在编写代码时可以采取适当的过滤措施,比如某个字段出现空值或异常值,你可以将这条数据不进行保存。从数据库提取的话,在sql上加一些去重/去空的语句即可。

4.实战案例

关于处理无效数据,我在之前的数据分析文章都用到过,大家可以了解一些。

用Python爬取电影数据并可视化分析_python爬取电影分析_艾派森的博客-CSDN博客

数据分析案例-大数据相关招聘岗位可视化分析_招聘信息数据集_艾派森的博客-CSDN博客

数据分析案例-四川省旅游景点数据分析_艾派森的博客-CSDN博客

数据分析案例-电影数据可视化分析_艾派森的博客-CSDN博客

数据分析案例-旅游景点票价预测_去哪儿网景点数据分析_艾派森的博客-CSDN博客

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA全局设置JDK、Maven、编码格式

本机已安装JDK版本: 本机已安装Maven版本: 一、IDEA设置全局JDK设置 File---->New Projects Settings---->Structure for New Projects... 先将本地安装的JDK添加到SDK 将项目SDK设置为刚刚添加的本地JDK版本 File---->New Projects Settings-…

8分钟让你完全掌握代理IP基础知识和实际应用

概念 代理IP可以理解为一个中转服务器,将用户和目标服务器之间的请求和响应进行转发和代理。使用代理IP的主要目的是隐藏用户的真实IP地址、访问被限制的内容、提高网络连接速度和保护用户隐私。 目录 概念 一、代理IP的工作原理 二、代理IP的类型 三、为什么…

Docker安装ClickHouse22.6.9.11并与SpringBoot、MyBatisPlus集成

背景 上一篇文章CentOS6.10上离线安装ClickHouse19.9.5.36并修改默认数据存储目录记录了在旧版的操作系统上直接安装低版本 ClickHouse (脱胎于俄罗斯头号搜索引擎的技术)的过程,开启远程访问并配置密码; 其实通过 Docker 运行 …

ESXi 7.0 U3m Cisco (思科) 定制版 OEM Custom Installer CD

VMware ESXi 7.0 Update 3m - 领先的裸机 Hypervisor (All OEM Customized Installer CDs) ESXi 7.0 U3m Standard (标准版) ESXi 7.0 U3m Dell (戴尔) 定制版 OEM Custom Installer CD ESXi 7.0 U3m HPE (慧与) 定制版 OEM Custom Installer CD ESXi 7.0 U3m Lenovo (联想) 定…

6个ChatGPT4的最佳用途

文章目录 ChatGPT 4’s Current Limitations ChatGPT 4 的当前限制1. Crafting Complex Prompts 制作复杂的提示2. Logic Problems 逻辑问题3. Verifying GPT 3.5 Text 验证 GPT 3.5 文本4. Complex Coding 复杂编码5.Nuanced Text Transformation 细微的文本转换6. Complex Kn…

提高你的小程序开发技能:五大重要步骤

对于任何开发人员来说,想要创建一个小程序并不是一件容易的事情。你需要为每个功能和应用程序编写代码,并且你需要不断地进行测试以确保它不会出错。 那么,我们该如何提高小程序的开发技能呢?通过下面这五个重要步骤,…

盖茨预言AI助理成标配,AI+RPA打破AI准入高门槛!

根据微软联合创始人比尔盖茨的预测,未来顶级的人工智能公司将会开发一种全新的“个人AI助理”。比尔盖茨表示,“个人AI助理”将会具有出色的功能,可以改变人们的生活方式以及工作方式。无论哪一家公司能够赢得AI助理竞争先机,都会…

ZipList(压缩链表)

基本概述 ZipList 是一种特殊的“双端链表” ,由一系列特殊编码的连续内存块组成。可以在任意一端进行压入/弹出操作, 并且该操作的时间复杂度为 O(1)。 基本结构: 各部分所占字节、基本介绍: entry,节点占用字节不固定&#xff0…

Mind2Web: 首个全面衡量大模型上网能力的数据集

夕小瑶科技说 原创 作者 | 智商掉了一地、ZenMoore 在互联网的浩瀚世界中,存在着无数复杂而扑朔迷离的任务等待我们去解决。如果要设计一个解决很多问题的通用智能体(AI agent),无论是关于购物、旅行、学习还是娱乐,…

MySQL高级篇第二天

文章目录 一、Mysql的体系结构概览 二、 存储引擎 三、优化SQL步骤 一、Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & Utilities : 管理服务和工具组件 SQL Interface : SQL接口组件 Parser : 查询分析器组件 O…

感觉被榨干了,被美团拷打一小时...

普通本科毕业后,进了一家互联网公司,这几年里不断在积累经验,最终选择跳到美团,涨薪了50%,下面分享一下我个人的面经和一些心得建议。 面经 面团一面 自我介绍专业技能一条条核对下来 有软件测试流程、用例设计方法…

快速入门教程:神经常微分方程 (Neural ODE)

神经常微分方程(Neural Ordinary Differential Equations,简称 Neural ODE)是一种基于常微分方程(Ordinary Differential Equations,ODEs)的深度学习方法,它结合了传统的ODE数值求解技术和神经网络模型。通过使用ODE来建模数据的演化过程,Neural ODE可以自动地学习数据…

力扣题库刷题笔记3--无重复字符的最长子串

1、题目如下: 2、个人Python代码实现如下: 代码如下: class Solution: def lengthOfLongestSubstring(self, s: str) -> int: temp "" #临时变量,记录当前连续不重复子串 out_put …

中国市场成为高阶智驾战略高地,博世/安波福包揽四项大奖

高工智能汽车研究院监测数据显示,2022年度中国市场(不含进出口)乘用车前装标配搭载辅助驾驶(L0-L2)交付1001.22万辆,首次突破千万辆规模,同时,前装搭载率也首次突破50%大关。 此外&a…

我用AI提高我的代码质量,周边同事对我的代码赞不绝口,速来围观

文章目录 前言功能演示1.使用Stream API来简化集合操作2.使用switch语句来替代多个if-else语句3.使用try-with-resources语句来自动关闭资源4. Lambda 表达式来简化代码,并提高代码的可读性和可维护性5.查找代码中的bug并优化6.python 使用sort方法来对列表进行排序7.javaScrpi…

【docker桌面版】windows使用docker搭建nginx

1.拉取nginx镜像 docker pull nginx 2.运行容器 docker run -d -p 80:8081 --name nginx nginx 3.本地磁盘创建nginx目录 D:\Docker\project\nginx 4.复制docker中的nginx配置文件 查看运行的容器docker ps -a docker cp 8f18d58bc77b:/etc/nginx/nginx.conf D:\Docker…

docker ansible与剧本模式

ansible(跨主机编排) ansible 是一个基于python开发的配置管理和应用部署和管理工具,现在也在自动化管理领域大放异彩,他融合了众多老牌运维工具的优点,pubbet和saltstack能实现的功能,ansible基本上都可以…

Docker使用记录

文章目录 Docker基本使用Docker配置查看状态卸载安装使用 apt 存储库安装在 Ubuntu 上安装 Docker 桌面(非必要) Docker实例使用现有的镜像查找镜像拖取镜像列出镜像列表更新镜像导出镜像删除镜像导入镜像清理镜像查看容器导出容器导入容器-以镜像的方式创建容器重启容器进入容…

虚函数表不一定总是在对象的起始位置

在我之前的一篇文章 “COM 对象的内存布局”中,作为举例,我将对象的虚函数表指针放置在了底层 C 对象的起始位置,但是值得注意的是,虚函数表指针指向的位置并没有一个实际的标准。即使将虚函数表放置在对象中间,甚至是…

零基础想转行做python爬虫及数据分析方向的程序员,有哪些书可以推荐?

学习Python语言是一个不错的选择,一方面Python的应用广泛,在大数据、人工智能、Web开发等领域有大量的使用,另一方面Python语言本身比较简单,非常适合初学者。 Python是完全可以自学的,如果英语基础还可以的话&#x…