python:删除离群值操作(每一行为一类数据)

为了删除离群值,我们需要首先定义什么是离群值。一般来说,我们可以把一组数的平均值加上/减去两到三个标准差作为正常值的范围, 超出这个范围的就可以认为是异常值。

那么下面就是一组基于Python的删除离群值操作的攻略:

离群值的检测

我们可以借助三个方法来检测离群值:

1. 计算IQR(四分位间距)

IQR = Q3 - Q1

其中Q3是数据上四分位数,Q1是数据下四分位数。具体实现如下:

# 计算IQR(四分位间距)
Q1 = df['col_name'].quantile(0.25)
Q3 = df['col_name'].quantile(0.75)
IQR = Q3 - Q1

2. 确定高/低端离群值的范围

高端离群值的范围:Q3 + 1.5 * IQR

低端离群值的范围:Q1 - 1.5 * IQR

3. 离群值检测

我们可以将高端离群值范围以上和低端离群值范围以下的数据判断为离群值。即:

# 离群值检测
outliers = df[(df['col_name'] < Q1 - 1.5 * IQR) | (df['col_name'] > Q3 + 1.5 * IQR)]

对于上述代码,我们可以适用于每一行是一类数据的情况。需要指定'df'为数据来源。

离群值的删除

当我们检测到离群值时,可以采取两种方法来删除它们:

1. 删除离群值

df.drop(outliers.index,inplace=True)

其中,outliers是我们要删除的离群值所在的行(部分行)。

2. 替换离群值

我们可以将离群值替换为中位数或平均数来修正它们,代码如下:

df['col_name'][outliers.index] = df['col_name'].median()

这里我们将离群值设为中位数。

示例

基于如上攻略,在以下情景中,我们可以实现删除离群值:

1. 商品价格数据

我们有一个商品价格数据的表格,其中有价格异常的物品,我们需要删除这些物品的信息。数据如下:

+--------+--------+--------+
| item_1 | item_2 | item_3 |
+--------+--------+--------+
| 10     | 20     | 150    |
| 15     | 25     | 100    |
| 30     | 35     | 200    |
| 35     | 40     | 250    |
| 50     | 60     | 300    |
| 5      | 30     | 120    |
+--------+--------+--------+

首先我们需要使用IQR方法检测数据中的离群值:

# 计算IQR(四分位间距)
Q1 = df.quantile(0.25)
Q3 = df.quantile(0.75)
IQR = Q3 - Q1

# 确定高/低端离群值的范围
outlier_range = [(Q1 - 1.5 * IQR), (Q3 + 1.5 * IQR)]

# 离群值检测
outlier_rows = df[((df < outlier_range[0]) | (df > outlier_range[1])).any(axis=1)]

# 删除离群值
df.drop(outlier_rows.index, inplace=True)

这样我们就可以删除掉价格异常的商品信息。

2. 客户消费数据

我们有一批客户消费数据,其中有消费金额较高的客户,我们考虑将它们删除或者进行其他修正。数据如下:

+---------+---------+---------+
| client_1| client_2| client_3|
+---------+---------+---------+
| 500     | 100     | 1500    |
| 1500    | 200     | 2000    |
| 3000    | 1000    | 2500    |
| 3500    | 2000    | 3000    |
| 5000    | 6000    | 4000    |
| 50      | 300     | 1200    |
+---------+---------+---------+

对于以上数据,我们采取替换离群值的方法进行修正:

# 计算IQR(四分位间距)
Q1 = df.quantile(0.25)
Q3 = df.quantile(0.75)
IQR = Q3 - Q1

# 确定高/低端离群值的范围
outlier_range = [(Q1 - 1.5 * IQR), (Q3 + 1.5 * IQR)]

# 替换离群值为中位数
df[(df < outlier_range[0]) | (df > outlier_range[1])] = df.median()

这样我们就可以修正前三个客户的金额并将其余离群值删除。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python:删除离群值操作(每一行为一类数据) - Python技术站

(0)
上一篇 2023年6月13日
下一篇 2023年6月13日

相关文章

  • pandas DataFrame 删除重复的行的实现方法

    pandas DataFrame 删除重复的行的实现方法 在处理数据的过程中,经常会出现获取到的数据中存在重复的行的情况。在使用 pandas Dataframe 时,也可能会遇到这个问题。这时候,需要使用 Dataframe 方法之一:drop_duplicates()。 drop_duplicates() drop_duplicates() 方法用于删除…

    python 2023年6月13日
    00
  • Python pymysql连接数据库并将查询结果转化为Pandas dataframe

    对于这个问题,我可以给出完整的Markdown格式文本攻略。 Python pymysql连接数据库并将查询结果转化为Pandas dataframe 安装pymysql 在Python中连接数据库,最常用的是pymysql库。如果你没有安装pymysql,你可以在终端运行以下命令安装: !pip install pymysql 当然,你也可以在命令行中输入…

    python 2023年6月13日
    00
  • Pandas筛选DataFrame含有空值的数据行的实现

    Pandas是Python中一个广受欢迎的数据处理库,它的DataFrame对象提供了很多方便的方法来处理和分析数据。对于数据分析和建模工作,经常需要处理和清洗含有缺失数据的数据集。下面是筛选DataFrame含有空值的数据行的实现攻略。 1. DataFrame对象的isnull()方法 Pandas提供了DataFrame对象的isnull()方法来检测…

    python 2023年6月13日
    00
  • js实现unicode码字符串与utf8字节数据互转详解

    下面是详细讲解“js实现unicode码字符串与utf8字节数据互转”的攻略: 什么是Unicode和UTF-8? Unicode是一种字符集,它为世界上所有的字符都分配了一个唯一的数字编号,这个数字就是字符的Unicode码。而UTF-8是Unicode的一种编码方式,它将Unicode码转换成字节流,方便在计算机中进行存储和传输。 Unicode字符串转…

    python 2023年6月13日
    00
  • Python实现连接MySQL数据库的常见方法总结

    Python实现连接MySQL数据库的常见方法总结 Python是一种简单易学且功能强大的编程语言,它可以轻松实现与MySQL数据库的连接。在这篇文章中,我们将讲解两种连接MySQL数据库的方法,它们分别是: 1.使用MySQL官方提供的Python驱动程序(PyMySQL)连接MySQL数据库。 2.使用SQLAlchemy库连接MySQL数据库。 下面将…

    python 2023年6月13日
    00
  • Pandas.DataFrame删除指定行和列(drop)的实现

    下面是关于 “Pandas.DataFrame删除指定行和列(drop)的实现” 的完整攻略,包括基本用法、参数解析、示例等。 基本用法 pandas.DataFrame 的一项常见操作是删除行或列,即 drop() 方法。drop() 方法可以根据指定的标签(label)或下标(index)删除行或列。具体用法如下: df.drop(labels=None…

    python 2023年6月13日
    00
  • python 在mysql中插入null空值的操作

    当我们需要向MySQL中插入一条空值时,我们可以使用Python中的None来表示,将None值传递给INSERT语句中的相应字段即可。 下面我们通过两条示例来说明如何使用Python插入MySQL中的空值: 示例 1:使用executemany插入多条空值 import mysql.connector # 连接MySQL数据库 conn = mysql.c…

    python 2023年6月13日
    00
  • 使用python处理题库表格并转化为word形式的实现

    一、概述 针对需求“使用python处理题库表格并转化为word形式的实现”,可以采用以下步骤完成: 1.使用pandas库读取表格数据;2.将读取到的数据按要求整理,如拼接、汇总等操作;3.通过python-docx库实现将处理结果转化为word文件。 二、具体实现步骤 1、安装依赖库 在命令行窗口输入以下命令来安装所需的依赖库: pip install …

    python 2023年6月13日
    00
合作推广
合作推广
分享本页
返回顶部