前言:
眼前同学们对“python怎么处理数据异常值”大致比较注意,看官们都想要分析一些“python怎么处理数据异常值”的相关文章。那么小编在网摘上收集了一些有关“python怎么处理数据异常值””的相关知识,希望咱们能喜欢,姐妹们一起来了解一下吧!实现功能:
python实现数据清洗,对重复记录、缺失值、异常值进行检测,并对其进行处理。
实现代码:
1
import numpy as np
2
import pandas as pd
3
4
def Read_data(file):
5
dt = pd.read_csv(file)
6
dt.columns = ['age', 'sex', 'chest_pain_type', 'resting_blood_pressure', 'cholesterol',
7
'fasting_blood_sugar', 'rest_ecg', 'max_heart_rate_achieved','exercise_induced_angina',
8
'st_depression', 'st_slope', 'num_major_vessels', 'thalassemia', 'target']
9
data =dt
10
pd.set_option('display.max_rows', None)
11
pd.set_option('display.max_columns', None)
12
pd.set_option('display.width', None)
13
pd.set_option('display.unicode.ambiguous_as_wide', True)
14
pd.set_option('display.unicode.east_asian_width', True)
15
print(data.head())
16
return data
17
18
def data_clean(data):
19
# 重复值处理
20
print('存在' if any(data.duplicated()) else '不存在', '重复观测值')
21
data.drop_duplicates()
22
23
# 缺失值处理
24
print(data.isnull())
25
print(data.isnull().sum()) #检测每列中缺失值的数量
26
print(data.isnull().T.sum()) #检测每行缺失值的数量
27
print('不存在' if any(data.isnull()) else '存在', '缺失值')
28
data.dropna() # 直接删除记录
29
data.fillna(method='ffill') # 前向填充
30
data.fillna(method='bfill') # 后向填充
31
data.fillna(value=2) # 值填充
32
data.fillna(value={'resting_blood_pressure': data['resting_blood_pressure'].mean()}) # 统计值填充
33
34
# 异常值处理
35
data1 = data['resting_blood_pressure']
36
# 标准差监测
37
xmean = data1.mean()
38
xstd = data1.std()
39
print('存在' if any(data1 > xmean + 2 * xstd) else '不存在', '上限异常值')
40
print('存在' if any(data1 < xmean - 2 * xstd) else '不存在', '下限异常值')
41
# 箱线图监测
42
q1 = data1.quantile(0.25)
43
q3 = data1.quantile(0.75)
44
up = q3 + 1.5 * (q3 - q1)
45
dw = q1 - 1.5 * (q3 - q1)
46
print('存在' if any(data1 > up) else '不存在', '上限异常值')
47
print('存在' if any(data1 < dw) else '不存在', '下限异常值')
48
data1[data1 > up] = data1[data1 < up].max()
49
data1[data1 < dw] = data1[data1 > dw].min()
50
# print(data1)
51
52
if __name__=="__main__":
53
data1=Read_data("F:\数据杂坛\\0504\heartdisease\Heart-Disease-Data-Set-main\\UCI Heart Disease Dataset.csv")
54
data_clean(data1)
实现效果:
喜欢记得点赞,在看,收藏,
关注V订阅号:数据杂坛,获取完整代码和效果,将持续更新!
标签: #python怎么处理数据异常值