sklearn中的数据预处理

机器学习算法最终学习结果的优劣取决于两个主要因素:数据的质量和数据中蕴含的有用信息的数量

一、缺失数据的处理

<一>删除缺失值

1.	# Title     : TODO  
2.	# Objective : TODO  
3.	
5.	  
6.	  
7.	import numpy as np  
8.	import pandas as pd  
9.	from io import StringIO  
10.	  
11.	data = '''''''A,B,C,D  
12.	1,2,3,4  
13.	5,6,,8  
14.	0,11,12,'''  
15.	  
16.	df = pd.read_csv(StringIO(data))  
17.	print(df)  
18.	  
19.	df.isnull().sum()  # 返回一个布尔型的DataFrame值    
20.	  
21.	df.dropna()  # 将含有缺失值的行删除    
22.	  
23.	df.dropna(axis=1)  # 将含有缺失值的列删除    
24.	  
25.	df.dropna(how="all")  # 全部缺失时才删除    
26.	  
27.	df.dropna(thresh=4)  # 删除包含缺失值但数目小于4的行    
28.	  
29.	df.dropna(subset=['C'])  # 删除特定列元素为缺失值的行    

<二>缺失值数据填充

1.	from sklearn.preprocessing import Imputer  
2.	imr = Imputer(missing_values='NaN', strategy='mean', axis=0)  
3.	# 这里使用的是每列均值填充,axis=1的话用每行的均值填充
4.	imr = imr.fit(df)  
5.	imputer_data = imr.transform(df.values)  
6.	print(imputer_data) 
7.	
8.	
9.	[[ 1.   2.   3.   4. ]
10.	 [ 5.   6.   7.5  8. ]
11.	 [ 0.  11.  12.   6. ]]

二、处理类别数据

       首先构造一个数据集:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值