使用箱线图法(IQR法)处理异常值

使用箱线图法(IQR法)处理异常值

箱线图法通过计算四分位数和四分位距(IQR)来识别异常值。一般认为低于下四分位数 - 1.5倍IQR或高于上四分位数 + 1.5倍IQR的值为异常值。

import pandas as pd

# 创建示例数据框
data = {
    'Date': ['2010-06-29', '2010-06-30', '2010-07-01', '2010-07-02', '2010-07-06', '2010-07-07', '2010-07-08', '2010-07-09', '2010-07-12', '2010-07-13', '2010-07-14', '2010-07-15', '2010-07-16', '2010-07-19', '2010-07-20', '2010-07-21', '2010-07-22', '2010-07-23'],
    'Open': [3.8, 5.158, 5, 4.6, 4, 3.28, 3.228, 3.516, 3.59, 3.478, 3.588, 3.988, 4.14, 4.274, 4.37, 4.132, 4.1, 4.238],
    'High': [5, 6.084, 5.184, 4.62, 4, 3.326, 3.504, 3.58, 3.614, 3.728, 4.03, 4.3, 4.26, 4.45, 4.37, 4.18, 4.25, 4.312],
    'Low': [3.508, 4.66, 4.054, 3.742, 3.166, 2.996, 3.114, 3.31, 3.4, 3.38, 3.552, 3.8, 4.01, 4.184, 4.01, 3.9, 4.074, 4.212],
    'Close': [4.778, 4.766, 4.392, 3.84, 3.222, 3.16, 3.492, 3.48, 3.41, 3.628, 3.968, 3.978, 4.128, 4.382, 4.06, 4.044, 4.2, 4.258],
    'Adj Close': [4.778, 4.766, 4.392, 3.84, 3.222, 3.16, 3.492, 3.48, 3.41, 3.628, 3.968, 3.978, 4.128, 4.382, 4.06, 4.044, 4.2, 4.258],
    'Volume': [93831500, 85935500, 41094000, 25699000, 34334500, 34608500, 38557000, 20253000, 11012500, 13400500, 20976000, 18699000, 13106500, 12432500, 9126500, 6262500, 4789000, 3268000]
}

# 创建数据框
df = pd.DataFrame(data)

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

# 识别和过滤异常值
df_outliers_removed = df[~((df < (Q1 - 1.5 * IQR)) | (df > (Q3 + 1.5 * IQR))).any(axis=1)]

print("处理后的数据框:")
print(df_outliers_removed)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚爱吃大蒜的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值