dataframe 异常值处理

箱体处理异常值
转载自:https://blog.youkuaiyun.com/zhuiqiuuuu/article/details/82721935

import pandas as pd
import numpy as np
from collections import Counter

def detect_outliers(df,n,features):    
	print("开始处理异常值")    
	outlier_indices = []    
	for col in features:        
		Q1 = np.percentile(df[col], 25)        
		Q3 = np.percentile(df[col],75)        
		IQR = Q3 - Q1        
		outlier_step = 1.5 * IQR        
		outlier_list_col = df[(df[col] < Q1 - outlier_step) | (df[col] > Q3 + outlier_step )].index     
   		outlier_indices.extend(outlier_list_col)    
	
	outlier_indices = Counter(outlier_indices)
	multiple_outliers = list( k for k, v in outlier_indices.items() if v > n )    
	return multiple_outliers   

Outliers_to_drop = detect_outliers(data,0,['target_Kwh'])
data = data.drop(Outliers_to_drop,axis=0).reset_index(drop=True)

代码中n表示行异常的次数,即检查的行中,异常的column次数大于n,才被选定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值