📜  删除 pandas 中的异常值 - Python (1)

📅  最后修改于: 2023-12-03 15:07:14.056000             🧑  作者: Mango

删除 pandas 中的异常值 - Python

在数据分析和机器学习中,常常需要处理异常值。异常值指的是数据中与其它数据相差较大的值,通常这些值是错误数据或误差数据。在 pandas 中,我们可以通过以下方式删除异常值:

1. 根据条件筛选数据

我们可以通过筛选数据的方式,将符合某个条件的数据删除。例如,我们可以删除身高低于 150cm 或高于 200cm 的数据,代码如下:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 删除身高低于 150cm 或高于 200cm 的数据
data = data[(data['height'] > 150) & (data['height'] < 200)]
2. 根据阈值删除数据

我们可以设置一个阈值,将高于或低于该阈值的数据删除。例如,我们可以删除平均数加减 3 倍标准差之外的数据,代码如下:

import pandas as pd
import numpy as np

# 读取数据
data = pd.read_csv('data.csv')

# 计算平均值和标准差
mean = np.mean(data)
std = np.std(data)

# 删除平均数加减 3 倍标准差之外的数据
min_threshold = mean - 3 * std
max_threshold = mean + 3 * std
data = data[(data > min_threshold) & (data < max_threshold)]
3. 使用插值法填充数据

对于没有太大偏差的数据,我们可以使用插值法将其填充。插值法是一种通过已有数据推算缺失数据的方法。例如,我们可以使用线性插值法填充缺失数据,代码如下:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 使用线性插值法填充缺失数据
data = data.interpolate()
4. 其它方法

除了以上三种方法,我们还可以使用其它方法处理异常值,例如箱线图、聚类分析等。这些方法需要根据具体情况进行选择和调整。

参考资料:

  1. pandas 中的数据筛选与清洗 - 知乎
  2. pandas.DataFrame.interpolate — pandas 1.2.4 documentation