python异常值检测_如何利用python处理异常值-百度经验

1

打开pycharm开发工具,在运行窗口输入命令:

import pandas as pd #导入pandas库

340e4eb8b43ea8db94aa4187189c2cf7deb2167a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

2

输入数据集。

data=pd.DataFrame({'name':['A','B','C','D','E','F','G'],'cost':[2,127,4,6,3,13,14],'sales':[13,18,32,54,23,33,44]})

print(data)

51f9aa3ea8db574a3ed22829a7f7dfb2dd19177a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

3

通过z-score方法判断异常值,即对原始值X进行正态标准化:(X-mean(X))/std(X),根据计算的结果判断样本值与中心的偏离程度。

df1=data.copy()#为了不影响原始数据集,复制数据集data

print(df1)

b57fb6db574afa32567c974254b2dc19cf2c147a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

4

按列计算均值和标准差。

df1['cost']=(df1['cost']-df1['cost'].mean())/df1['cost'].std()#标准化cost_z列

a99a494afa32939cea1764075719ce2c5a1b157a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

5

对sales列进行标准化。

df1['sales']=(df1['sales']-df1['sales'].mean())/df1['sales'].std()#标准化cost_z列

df1['sales']

560be432939c2cf7185267ac452c5b1b1fde127a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

6

查看标准化后的数据集。

print(df1)

标准化后的绝对值越大,数据越有可能异常,是否异常根据设定的阈值判断。

ef4c24ceaad7726b2e03de52bf0f64781523b97a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

7

假设cost列阈值为2,通过下面的方法找到异常值。

df1['cost'].abs()>2#判断数据是否异常

data[df1['cost'].abs()>2]#取出原数据集中的异常点

3b8fb4d7726b0ce246068fbaef781423bfb9b67a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

END

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值