在数据集中如果某一个观察值不寻常地大于或者小于该数据集中的其他数据,我们则称之为 疑似异常值 。疑似异常值的存在,会对随后的计算结果产生不适当的影响,检测疑似异常值并加以适当的处理是十分必要的。

一种经典的计算数据集中疑似异常值的方法是 Tukey method 。该方法先计算出数据集的四分之一分位数(Q1)和四分之三分位数(Q3),从而计算出四分位数间距(IQR),然后将小于 Q1 - 1.5IQR 或者大于 Q3 + 1.5IQR 的数据点当做是疑似异常值。我们可以借助这种方法在DataFrame中检测异常值。代码如下:

import numpy as np
from collections import Counter
# Outlier detection
def detect_outliers(df, n, features):
    Takes a dataframe df of features and returns a list of the indices
    corresponding to the observations containing more than n outliers according
    to the Tukey method.
    outlier_indices = []
    # iterate over features(columns)
    for col in features:
        # 1st quartile (25%)
        Q1 = np.percentile(df[col], 25)
        # 3rd quartile (75%)
        Q3 = np.percentile(df[col], 75)
        # quartile spacing (IQR)
        IQR = Q3 - Q1
        # outlier step
        outlier_step = 1.5 * IQR
        # Determine a list of indices of outliers for feature col
        outlier_list_col = df[(df[col] < Q1 - outlier_step) | (df[col] > Q3 + outlier_step)].index
        # append the found outlier indices for col to the list of outlier indices
        outlier_indices.extend(outlier_list_col)
    # select observations containing more than n outliers
    outlier_indices = Counter(outlier_indices)
    multiple_outliers = list(k for k, v in outlier_indices.items() if v > n)
    return multiple_outliers

Tukey method
概率论与数理统计 第四版 浙江大学出版社

以上就是本文的全部内容,如果您喜欢这篇文章,欢迎将它分享给朋友们。

感谢您的阅读,祝您生活愉快!

作者:小美哥
2019-02-02

在数据集中如果某一个观察值不寻常地大于或者小于该数据集中的其他数据,我们则称之为疑似异常值。疑似异常值的存在,会对随后的计算结果产生不适当的影响,检测疑似异常值并加以适当的处理是十分必要的。一种经典的计算数据集中疑似异常值的方法是Tukey method。该方法先计算出数据集的四分之一分位数(Q1)和四分之三分位数(Q3),从而计算出四分位数间距(IQR),然后将小于Q1 - 1.5IQR或者大...
       Pandas包是基于Python平台的数据管理利器,已经成为了Python进行数据分析和挖掘时的数据基础平台和事实上的工业标准,掌握其使用方法,是使用Python进行数据分析和数据挖掘的必备条件。       本课程通过讲解Pandas基础知识、DataFrame核心分析方法,以一系列实操案例使你快速掌握数据获取,数据清洗与整理,数据分析        pandas是在python最直接最流行的数据处理框架。可以这么说,如果你不会使用pandas,那你就谈不上会用python做数据分析。所以,pandas的重要性是不言而喻的,不管是想做简单的做数据分析和预测,还是想做高端的机器学习,深度学习,我们都必须学习pandas。 这门课程目标是,高效快速的让大家在最短的时间内掌握好pandas这个在python数据分析不可缺少的数据分析框架。 
pandas数据的异常值判断、可视化、处理方式 回想一下我们小时候参加唱歌比赛,最后算分的时候总会去掉一个最高分,去掉一个最低分,将剩下的分数进行去平均。这里面就有筛选异常值的思想。一个非常夸张的异常值可能会造成对最后统计结果产生比较大的影响。所以,在这里,我们介绍两种办法来判断异常值,并使用箱线图进行显示。 异常值判断 1、使用均值和标准差进行判断 mean 为数据的均值 std 为数据的...
catering_sale = 'catering_sale.xls' #餐饮数据 data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列 print(... 重复值处理——删除(有几个相同就删除还是全部得相同) 缺失值处理——删除,填充(均值,众数,位数,前后相邻值),插值(拉格朗日插值,牛顿插值) 异常值处理——describe进行描述性分析+散点图+箱型图定位异常值,处理方法:删除,视为缺失值 一、重复值处理 ① 先用duplicated()方法进行逻辑判断,确定是否有重复值 data = pd.read_csv("dat... 使用Pandas进行数据预处理时需要了解Pandas的基础数据结构Series和DataFrame。若是还不清楚的可以再去看看我之前的三篇博客详细介绍这两种数据结构的处理方法: 一文速学-数据分析之Pandas数据结构和基本操作代码 DataFrame行列表查询操作详解+代码实战 DataFrame多表合并拼接函数concat、merge参数详解+代码操作展示 以上三篇均为基础知识,没有比较难的实战,比较容易学会。 首先说明一点,关于包含在异常值里面的空值和重复值均有两篇博客专门详细介.. date_key:某列的列名 ‘8’:检索这一列是否含有字符‘’8‘’ bool_index :列表形式,长度为dataframe的行数(值为true:该行含有该字符 或 false:该行不含有该字符) filter_data :过滤后的dataframe数据 ......
利用pandas检测和过滤异常值 在数据清洗过程,我们经常需要对数据进行检测和过滤异常值。以下是用pandas实现的方法 案例分析:假设我们有某学校学生成绩的数据,学校有ABCD四个班,每个班100名学生,我们需要检测这些数据有没有异常 代码示例: import numpy as np import pandas as pd # 这里我们先随机生成400名学生的成绩 data = pd.Dat...
# DateFrame,index为行索引,columns为列索引 pd.set_option('display.unicode.east_asian_width', True) s1 = 'H:\pythonProject\COD1.csv' s2 = pd.read_csv(s1, index_col=0) # 指定第一列为行索引 print(s2) # 输出原始数据 ##插入数据 s2.loc['s14','b7'] = 34 print('*****-
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
您好,可以使用 pandas 的 to_clipboard 方法将 dataframe 复制到剪贴板,然后可以直接粘贴到 Excel ,而不需要生成表格文件。具体代码如下: ```python import pandas as pd # 创建一个 dataframe df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # 将 dataframe 复制到剪贴板 df.to_clipboard(index=False, header=False) # 粘贴到 Excel 即可 希望能对您有所帮助。
【已解决】Error executing Jupyter command 'notebook': [Errno 2] No such file or directory 臻_Joww: 我是windows的,同样的方法解决了表情包