人工智能数据集处理——数据清理2

目录

异常值的检测与处理

一、异常值的检测

1、使用3σ准则检测异常值

定义一个基于3σ准则检测的函数,使用该函数检测文件中的数据,并返回异常值

 2、使用箱形图检测异常值

根据data.xlsx文件中的数据,使用boxplot()方法绘制一个箱型图

定义一个从箱型图形中获取异常值的函数,并返回data.xlsx文件中数据的异常值及其对应的索引

二、异常值的处理

1、删除异常值

使用drop()方法根据指定的行索引中读取的data.xlsx 文件的数据中删除异常值

异常值被删除后,可以再次调佣定义值的three_sigma()函数进行检测,以确保异常值全部删除

2、替换异常值

 使用replace()方法从data.xlsx文件读取的数据的异常值


异常值的检测与处理

一、异常值的检测

1、使用3σ准则检测异常值

定义一个基于3σ准则检测的函数,使用该函数检测文件中的数据,并返回异常值

import numpy as np
import pandas as pddef three_sigma(ser):"""ser参数:被检测的数据,接收DataFrom的一列数据返回: 异常值及其对应的行索引"""# 计算平均值mean_data = ser.mean()# 计算标准差std_data = ser.std()# 小于 μ - 3σ 或 μ + 3σ的数值均为异常值rule = (mean_data - 3 * std_data > ser) | (mean_data + 3 * std_data < ser)# 返回异常值的行索引index = np.arange(ser.shape[0])[rule]# 获取异常值outliers = ser.iloc[index]return outliers# 读取data.xlsx文件
execl_data = pd.read_excel('C:/py数据/第5章/data.xlsx')
# 对value列进行异常值检测
print(three_sigma(execl_data['value']))

121    13.2
710    13.1
Name: value, dtype: float64

 2、使用箱形图检测异常值

根据data.xlsx文件中的数据,使用boxplot()方法绘制一个箱型图

import pandas as pd
import matplotlib.pyplot as pltexecl_data = pd.read_excel('C:/py数据/第5章/data.xlsx')
# print(execl_data)
plt.boxplot(execl_data['value'], sym='rs')
plt.show()

 

定义一个从箱型图形中获取异常值的函数,并返回data.xlsx文件中数据的异常值及其对应的索引

import pandas as pd
import numpy as npdef box_outliers(ser):# 对待检测的数集进行排序global Q3, Q1new_ser = ser.sort_values()# 判断数据的总数量是奇数还是偶数if new_ser.count() % 2 == 0:# 计算Q3,Q1,IQRQ3 = new_ser[int(len(new_ser) / 2):].median()Q1 = new_ser[:int(len(new_ser) / 2)].median()elif new_ser.count() % 2 != 0:Q3 = new_ser[int((len(new_ser) - 1) / 2):].median()Q1 = new_ser[:int((len(new_ser) - 1) / 2)].median()IQR = round(Q3 - Q1, 1)rule = (round(Q3 + 1.5 * IQR, 1) < ser) | (round(Q1 - 1.5 * IQR, 1) > ser)index = np.arange(ser.shape[0])[rule]# 获取异常值及其索引outliers = ser.iloc[index]return outliersexecl_data = pd.read_excel('C:/py数据/第5章/data.xlsx')
print(box_outliers(execl_data['value']))

0      12.7
121    13.2
255    12.7
353    13.0
694    12.8
710    13.1
724    12.9
Name: value, dtype: float64

二、异常值的处理

1、删除异常值

使用drop()方法根据指定的行索引中读取的data.xlsx 文件的数据中删除异常值

# 根据行索引删除异常值
execl_data = pd.read_excel('C:/py数据/第5章/data.xlsx')
execl_data.drop([121, 710])

异常值被删除后,可以再次调佣定义值的three_sigma()函数进行检测,以确保异常值全部删除

clean_data = execl_data.drop([121,710])
# 再次检测数据中是否有异常值
print(three_sigma(clean_data['value']))

Series([], Name: value, dtype: float64)

2、替换异常值

替换异常值既可以是固定数值,也可以计算得出的值

 使用replace()方法从data.xlsx文件读取的数据的异常值

replace_data = execl_data.replace({13.2:10.2,13.1:10.5})
# 根据行索引获取替换后的值
print(replace_data.loc[121])
print(replace_data.loc[710])

Unnamed: 0    121.0
value          10.2
Name: 121, dtype: float64
Unnamed: 0    710.0
value          10.5
Name: 710, dtype: float64

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

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

相关文章

数字孪生百科之海康威视安防系统

智能安防是指利用先进的技术手段和系统&#xff0c;以提升安全防护能力和监控效果的安全领域。数字化则是指将信息以数字形式进行处理和存储的过程。智能安防与数字化密切相关&#xff0c;通过数字化的手段和技术&#xff0c;可以实现对安全领域的全面监控、数据分析和智能决策…

人工智能:揭示未来科技所带来的革命性变革

目录 引言&#xff1a; 一、人工智能的定义与发展历程&#xff1a; 二、人工智能的应用领域&#xff1a; 三、人工智能对未来的影响&#xff1a; 结论&#xff1a; 引言&#xff1a; 在当今科技快速发展的时代&#xff0c;人工智能&#xff08;Artificial Intelligence&am…

1-Eureka服务注册与发现以及Eureka集群搭建(实操型)

1-Eureka服务注册与发现以及Eureka集群搭建&#xff08;实操型&#xff09; 1. 简单搭建微服务框架1.1 idea创建maven多模块项目1.2 项目结构1.3 项目依赖与配置1.3.1 父工程&#xff1a;dog-cloud-parent1.3.2 管理实体项目&#xff1a;dog-po1.3.3 服务提供者&#xff1a;dog…

vue3 elementplus table表格多行合计

表格底部如何多行合计 1.先在标签上定义合计方法 <el-table:data"data":summary-method"getSummaries":show-summary"true"selection-change"handleSelectionChange">2.文件头部引入h函数渲染多行div&#xff0c;BigNumber 防…

从零搭建一台基于ROS的自动驾驶车-----1.整体介绍

系列文章目录 北科天绘 16线3维激光雷达开发教程 基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图 Nvidia Jetson Nano学习笔记–串口通信 Nvidia Jetson Nano学习笔记–使用C语言实现GPIO 输入输出 Autolabor ROS机器人教程 文章目录 系列文章目录前言一、小车底盘二、激…

csproj文件常用设置及C#注释常用写法

csproj文件常用设置及C#注释常用写法 .NET新版SDK风格的csproj文件 打开可为空警告 <PropertyGroup><Nullable>enable</Nullable> </PropertyGroup>启动全局引用using 下图没有任何using&#xff0c;仍然不报错 <PropertyGroup><Implicit…

电脑开机太慢!怎么让电脑开机速度变快?

电脑刚买来的时候&#xff0c;开机速度很快&#xff0c;用了一段时间后&#xff0c;开机速度越来越慢&#xff0c;甚至要等上好几分钟&#xff0c;这实在是太让人苦恼了!电脑开机太慢&#xff0c;怎么让电脑开机速度变快&#xff1f;其实想要解决这个问题很简单&#xff0c;我们…

基于Docker的JMeter分布式压测

目录 前言&#xff1a; Docker Docker在JMeter分布式测试中的作用 Dockerfile用于JMeter基础&#xff1a; Dockerfile for JMeter Server / Slave: 总结 前言&#xff1a; 基于Docker的JMeter分布式压测是一种将JMeter测试分布在多个容器中进行的方法&#xff0c;可以提高…

【强化学习】常用算法之一 “PPO”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

数据结构与算法:栈和队列

1 栈 栈是一种后入先出&#xff08;LIFO&#xff09;的线性逻辑存储结构。只允许在栈顶进行进出操作。 1.1 栈基本操作 基本操作包括&#xff1a;入栈&#xff08;push&#xff09;/出栈&#xff08;pop&#xff09;/获取栈顶元素&#xff08;peek&#xff09;。 栈的实现主…

SpringBoot2+Vue2实战(四)进行组件内容拆分及路由实现

一、拆分 新建包&#xff1a; Aside和Header都是组件 User为视图 Aside.vue&#xff1a; <template><el-menu :default-openeds"[1, 3]" style"min-height: 100%; overflow-x: hidden"background-color"rgb(48, 65, 86)"text-color…

【Flume】高级组件之Sink Processors及项目实践(Sink负载均衡和故障转移)

文章目录 1. 组件简介2. 项目实践2.1 负载均衡2.1.1 需求2.1.2 配置2.1.3 运行 2.2 故障转移2.2.1 需求2.2.2 配置2.2.3 运行 1. 组件简介 Sink Processors类型包括这三种&#xff1a;Default Sink Processor、Load balancing Sink Processor和Failover Sink Processor。 Defa…