当前位置:   article > 正文

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','fasting_blood_sugar', 'rest_ecg', 'max_heart_rate_achieved','exercise_induced_angina', 'st_depression', 'st_slope', 'num_major_vessels', 'thalassemia', 'target']
7	                  
8	                 
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

实现效果:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
若有侵权,请联系删除
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/583198
推荐阅读
相关标签
  

闽ICP备14008679号