【数据分析&数据挖掘】异常值的判断与去除——3σ & 箱线图分析

 1 import pandas as pd
 2
 3 # 异常值 ——远离正常值范围的错误值
 4 # 异常值 ——删掉
 5
 6 # 异常值判断 ——3σ 箱线图分析
 7
 8 # 3σ 接住标准正态部分得到的规律——99.73%都在(μ-3α,μ+3α)之间,超过这个范围的数据认为是异常的
 9
10 def three_sigma(data):
11     """
12     进行3sigma异常值剔除
13     :param data: 原数据——series
14     :return: bool数组
15     """
16
17     # 上限
18     up = data.mean() + 3 * data.std()
19     # 下线
20     low = data.mean() - 3 * data.std()
21
22     # 在上限与下限之间的数据是正常的
23     bool_index = (data < up) & (data > low)
24
25     return bool_index
26
27
28 def box_analysis(data):
29     """
30     箱线图分析去除异常值
31     :param data: 原数据——series
32     :return: bool数组
33     """
34     # 上四分位数
35     qu = data.quantile(q=0.75)
36     # 下四分位数
37     ql = data.quantile(q=0.25)
38     # 计算四分位间距
39     iqr = qu - ql
40
41     # 上限
42     up = qu + 1.5 * iqr
43     # 下限
44     low = ql - 1.5 * iqr
45
46     bool_index = (data < up) & (data > low)
47
48     return bool_index
49
50
51 # 验证——加载detail
52 detail = pd.read_excel("../day05/meal_order_detail.xlsx")
53 print("detail的列索引: \n", detail.columns)
54 print("detail的形状: \n", detail.shape)
55
56 # 对amounts列进行异常值处理
57 bool_index = three_sigma(detail.loc[:, "amounts"])
58 bool_index = box_analysis(detail.loc[:, "amounts"])
59 print("bool_index: \n", bool_index)
60
61 # 获取异常值处理之后的结果
62 detail = detail.loc[bool_index, :]
63 print("异常值处理之后的结果: \n", detail.shape)

原文地址:https://www.cnblogs.com/Tree0108/p/12116099.html

时间: 2024-08-29 12:24:51

【数据分析&数据挖掘】异常值的判断与去除——3σ & 箱线图分析的相关文章

【数据分析&amp;数据挖掘】2000-2017年各个产业生产总值箱线图

1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 5 # 构建数据 6 def build_data(): 7 res = np.load("./国民经济核算季度数据.npz", allow_pickle=True) 8 columns = res["columns"] 9 values = res["values"] 10 return columns, values 11 1

【转】数据分析/数据挖掘 入门级选手建议

1.数据分析和数据挖掘联系和区别 联系:都是搞数据的 区别:数据分析偏统计,可视化,出报表和报告,需要较强的表达能力.数据挖掘偏算法,重模型,需要很深的代码功底,要码代码,很多= =. 2.怎么入门 请百度"如何成为一名数据分析师"或者"如何成为一名数据挖掘工程师".英文好上Quora,不行上知乎,看看入门资料. 3.选哪些书 看入门资料给你提供的书,有电子版下电子版,没电子版买纸质书,花不了多少钱. 4.用什么语言 数据分析:excel是必须,R是基本,pytho

用Python做股票市场数据分析—做K线图

由于本科在校期间身边有许多朋友是金融专业的,他们时长在我耳边谈起股票情况,受他们影响,耳濡目染地对证券时长有了兴趣.毕业前几个月找实习单位时,又机缘巧合地在这方面工作了一段时间,学习了证券交易的各种理论(道氏理论.日本蜡烛图技术.波浪理论等),虽然后期转行做了本专业工作(数据挖掘),但对证券交易这块一直在关注.闲来无事就用Python来实现了一下蜡烛图,话不多说,直接上代码: # 导入需要的包和模块 import datetime import pandas as pd import tusha

poj1584 A Round Peg in a Ground Hole 判断多边形凹凸,点到线的距离【基础计算几何】

大致思路:首先对于所给的洞的点,判断是否是凸多边形,图形的输入和输出可以是顺时针或者逆时针,而且允许多点共线 Debug 了好几个小时,发现如下问题 判断三点是否共线,可用斜率公式判断 POINT point_A, point_B, point_C; if(point_A.x == point_B.x || point_B.x == point_C.x){ if(point_A.x == point_B.x && point_B.x == point_C.x) continue; }els

判断类是否存在函数class_exists用法分析

原文地址:判断类是否存在函数class_exists用法分析 如果我们要判断一个类是不是可以用,可以先使用class_exists函数来判断一下,下面来看几个例子. bool class_exists ( string $class_name [, bool $autoload = true ] ) 此功能是否给定的类被定义检查.this function checks whether or not the given class has been defined.返回true,如果class_

寻找连通线,参考八后算法递归,可用于验证码去除连续干扰线

寻找连通线,参考八后算法递归,可用于验证码去除连续干扰线 https://github.com/isee15/captcha-ocr/blob/master/src/cn/z/NoiseLine.java package cn.z; import java.awt.Color;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException; import javax.imageio.ImageI

06-机器学习.数据分析.数据挖掘的区别于联系

数据分析:数据分析是指用适当的统计分析方法对手机的大量数据进行分析,并提取有用的信息,以及形成结论,从而对数据进行详细的研究和概括过程.在实际工作中,数据分析可帮助人们做出判断;数据分析一般而言可以分为统计分析.探索性数据分析和验证性数据分析三大类. 数据挖掘:一般指从大量的数据中通过算法搜索隐藏于其中的信息的过程.通常通过统计,检索.机器学习.模式匹配等诸多方法来实现这个过程. 机器学习:是数据分析和数据挖掘的一种比较常用.比较好的手段.. 原文地址:https://www.cnblogs.c

python&amp;数据分析&amp;数据挖掘--参考资料推荐书籍

1.要用python做数据分析,先得对python语言熟悉,推荐一本入门书 :笨方法学python (learn python the hard way),这本书用非常有趣的讲述方式介绍了python的基本语法,非常适合非计算机专业作为入门书来看. 2.用python做数据分析的话,推荐用 anaconda,地址https://www.anaconda.com/download/  ,可以根据需要选择版本 3.后面需要添加各种包的时候,在开始-所有程序,打开Anaconda prompt,输入

【数据分析&amp;数据挖掘】三种数据标准化方式——离差标准化、标准差标准化&amp;小数定标标准化

1 import pandas as pd 2 import numpy as np 3 4 5 # 标准化----去除量级的影响 6 7 # 3种方式 8 # (1)离差标准化 9 # 将数据做线性变化,将数据映射到[0,1]范围内, 10 # x = (x - min) / (max - min) 11 # 过大或者过小的异常值都会对结果产生影响 12 # 容易受到异常值影响 13 def max_min_sca(data): 14 """ 15 借助离差标准化 来标准化