python数据预处理之缺失值的各种填补方式

如果你觉得文字看着枯燥,可以看配套讲解视频:讲解视频

对于数据挖掘的缺失值的处理,应该是在数据预处理阶段应该首先完成的事,缺失值的处理一般情况下有三种方式:

(1)删掉缺失值数据

(2)不对其进行处理

(3)利用插补法对数据进行补充

第一种方式是极为不可取的,如果你的样本数够多,删掉数据较少,这种情况下还是可取的,但是,如果你的数据本身就比较少,而且还删除数据,这样会导致大量的资源浪费,将丢弃了大量隐藏在这些记录中的信息.利用插补法对数据进行补充,是极为推荐的一个方式.

常见的插补法有以下几种:

1.用固定值插补

 #输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna('填补的数据')
 #输出到指定文件
data.to_excel(outputfile)   

 2.用均值插补

 #输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(data['空缺值所在列名'].mean())
 #输出到指定文件
data.to_excel(outputfile) 

 3.用众数插补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(data['空缺值所在列名'].mode()[0])
 #输出到指定文件
data.to_excel(outputfile) 

  这里强调一下,看了很多其他的博客,在用众数填充时,都是直接data['空缺值所在列名'].mode(),我尝试了很多遍,发现一直填充不进去,后来查阅资料才发现pandas返回的是一个series(因为众数不止一个),而不像median,mean这些返回特定一个值,所以必须在后面加上下标值【0】,才能进行填充(必须加下标值,必须加下标值,必须加下标值,重要的话说三遍)

 4.用中位数插补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(data['空缺值所在列名'].median())
 #输出到指定文件
data.to_excel(outputfile) 

 5.用上下数据插补

   用前一个数据填补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(method='pad')
 #输出到指定文件
data.to_excel(outputfile) 

  用下一个数据填补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(method='bfill')
 #输出到指定文件
data.to_excel(outputfile) 

 6.用插值法插补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].interpolate()
 #输出到指定文件
data.to_excel(outputfile) 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值