我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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 pdimport numpy as npimport warningswarnings.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博客

 

 

来源地址:https://blog.csdn.net/m0_64336780/article/details/130804666

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python操作Redis数据库的详细教程与应用实战

目录引言安装Redis-py库连接到Redis服务器连接到本地Redis服务器连接到远程Redis服务器数据操作键值对操作哈希表操作列表操作集合操作有序集合操作事务订阅与发布管道(Pipeline)持久化与备份总结引言Redis是一个高性
Python操作Redis数据库的详细教程与应用实战
2024-08-12

如何利用Python提取pdf中的表格数据(附实战案例)

从PDF表格中获取数据是一项痛苦的工作,下面这篇文章主要给大家介绍了关于如何利用Python提取pdf中的表格数据的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-13

递归在 C++ 中的实战应用:图像处理和数据分析案例

递归在 c++++ 中广泛应用,包括:图像处理:图像缩小通过递归将图像划分为更小的部分并重复调用缩小操作。数据分析:归并排序:通过递归将数组拆分为更小的子数组并合并已排序的子数组来实现。二分查找:通过递归在有序数组中找到目标元素。递归在 C
递归在 C++ 中的实战应用:图像处理和数据分析案例
2024-05-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录