📅  最后修改于: 2023-12-03 15:07:14.056000             🧑  作者: Mango
在数据分析和机器学习中,常常需要处理异常值。异常值指的是数据中与其它数据相差较大的值,通常这些值是错误数据或误差数据。在 pandas 中,我们可以通过以下方式删除异常值:
我们可以通过筛选数据的方式,将符合某个条件的数据删除。例如,我们可以删除身高低于 150cm 或高于 200cm 的数据,代码如下:
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 删除身高低于 150cm 或高于 200cm 的数据
data = data[(data['height'] > 150) & (data['height'] < 200)]
我们可以设置一个阈值,将高于或低于该阈值的数据删除。例如,我们可以删除平均数加减 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)]
对于没有太大偏差的数据,我们可以使用插值法将其填充。插值法是一种通过已有数据推算缺失数据的方法。例如,我们可以使用线性插值法填充缺失数据,代码如下:
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 使用线性插值法填充缺失数据
data = data.interpolate()
除了以上三种方法,我们还可以使用其它方法处理异常值,例如箱线图、聚类分析等。这些方法需要根据具体情况进行选择和调整。
参考资料: