預處理演算法 8 異常值處理

2022-06-12 09:03:13 字數 2025 閱讀 9103

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# def execute():

# import pandas as pd

import numpy as np

import warnings

warnings.filterwarnings('ignore')

from sqlalchemy import create_engine

'''連線資料庫

'''engine = create_engine('mysql+pymysql:')

params =

inputs =

'''選擇目標資料

'''data_sql = 'select ' + params['columns'] + ' from ' + inputs['table']

data_in = pd.read_sql_query(data_sql, engine)

data_in.iloc[1] = np.nan

print(data_in)

# data_name = db_utils.query(conn, 'select ' + params['columns'] + ' from ' + inputs['data_in'])

'''找出缺失值

'''def outrange(ser1):

ql = ser1.quantile(float(params['upper_quantile']))

qu = ser1.quantile(float(params['lower_quantile']))

iqr = qu - ql

ser1.loc[ser1 > (qu + 1.5 * iqr)] = none

ser1.loc[ser1 < (ql - 1.5 * iqr)] = none

return ser1

# names = data_name.columns

# for j in names:

# data_in[j] = outrange(data_in[j])

'''對異常值處理

''''''

異常值處理方法:

刪除異常值:drop

中位數插補:median_interpolation

眾數插補:mode_interpolation

均值插補:mean_interpolation

線性插值:slinear

多項式插值:polynomial

'''if params['method'] == 'drop':

data_out = data_in.dropna()

elif params['method'] == 'median_interpolation':

data_out = data_in.fillna(data_in.median())

elif params['method'] == 'mode_interpolation':

data_out = data_in.fillna(data_in.mode())

elif params['method'] == 'slinear':

data_out = data_in.interpolate(method='slinear')

elif params['method'] == 'quadratic':

data_out = data_in.interpolate(method='quadratic')

elif params['method'] == 'mean_interpolation':

data_out = data_in.fillna(data_in.mean())

else:

data_out = data_in.fillna(data_in.mean())

'''將結果寫出

'''print(data_out)

# if __name__ == '__main__':

execute()

資料預處理之異常值處理

異常值,即在資料集中存在不合理的值,又稱離群點。比如年齡為 1,膝上型電腦重量為1噸等,都屬於異常值的範圍。從集合角度來看,異常值即離群點,如下圖所示 對屬性值進行乙個描述性的統計,從而檢視哪些值是不合理的。比如對年齡這個屬性進行規約 年齡的區間在 0 200 如果樣本中的年齡值不再該區間範圍內,則...

異常值處理

簡單來說,即在資料集中存在不合理的值,又稱離群點。我們舉個例子,做客戶分析,發現客戶的年平均收入是80萬美元。但是,有兩個客戶的年收入是4美元和420萬美元。這兩個客戶的年收入明顯不同於其他人,那這兩個觀察結果將被視為異常值。每當我們遇到異常值時,處理這些異常值的理想方法就是找出引起這些異常值的原因...

預處理演算法 4 表堆疊

表堆疊主要是兩個dataframe進行資料合併 usr bin env python coding utf 8 def execute 載入模組 import pandas as pd from sqlalchemy import create engine 連線資料庫 engine create ...