python实现数据预处理之填充缺失值的示例

yipeiwu_com6年前Python基础

1、给定一个数据集noise-data-1.txt,该数据集中保护大量的缺失值(空格、不完整值等)。利用“全局常量”、“均值或者中位数”来填充缺失值。

noise-data-1.txt:

5.1 3.5 1.4 0.2
4.9 3 1.4 0.2
4.7 3.2 1.3 0.2
4.6 3.1 1.5 0.2
5 3.6 1.4 0.2
5.4 3.9 1.7 0.4
4.6 3.4 1.4 0.3
5 3.4 1.5 0.2
4.4 2.9 1.4 0.2
4.9 -3.1 1.5 0.1
5.4 3.7 1.5 0.2
4.8 3.4 1.6 0.2
4.8 3 -1.4 0.1
4.3 3 1.1 0.1
5.8 4 1.2 0.2
5.7 4.4 1.5 0.4
5.4 3.9 1.3 0.4
5.1 3.5 1.4 0.3
5.7 3.8 1.7 0.3
5.1 3.8 -1.5 0.3
5.4 3.4 1.7 0.2
5.1 3.7 1.5 0.4
4.6 3.6 1 0.2
5.1 3.3 1.7 0.5
4.8 3.4 1.9 0.2

解题思路:首先读入数据,对数据进行处理,去掉空行,利用 “均值来填充缺失值,本题利用Python语言实现,代码如下:

import numpy as np
data = []
my_list = []
con=0
noise_data = open('noise-data-1.txt') 
clean_data = open("clean_data3.txt", 'w')
for line in noise_data.readlines():
 if len(line) == 0:
 break
 if line.count('\n') == len(line):
 continue 
 dataline =line.strip().split('\t')
 my_list.append(dataline)
 con+=1
for i in range(0,con):
 for j in range(0,len(my_list[i])):
 if my_list[i][j].count('.')==0:
  miss_row=[]
  for a in range(0,len(my_list[i])):
  if float(my_list[i][a])<0:
   miss_row.append(-float(my_list[i][a])) 
  miss_row.append(float(my_list[i][a])) 
  my_average=round(np.average(miss_row),1)
  my_list[i][j]=my_average
 else:
  if float(my_list[i][j])<0:
   my_list[i][j]=-float(my_list[i][j]) 
  my_list[i][j]=float(my_list[i][j]) 
print my_list
def file_write(filename,data_list):
 file1=open(filename,'w')
 for i in data_list:
 for j in i:
  if type(j)!=str:
  j=str(j)
  file1.write(j)
  file1.write(' ')
 file1.write('\n')
 file1.close()
 return file1
filename='clean_data.txt'
file_write(filename,my_list)

运行结果如下:

以上这篇python实现数据预处理之填充缺失值的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python解释器spython使用及原理解析

python解释器spython使用及原理解析

简介 出于个人爱好和某种需求,我再16年对python的解释器产生了浓厚兴趣,并且下定决心重新实现一个版本。我个人再游戏服务器开发中,对c++嵌入lua和python都有着丰富应用经验...

一键搞定python连接mysql驱动有关问题(windows版本)

对于mysql驱动问题折腾了一下午,现共享出解决方案 1:手动安装驱动 完全是场噩梦,推荐大家采用自动安装 2:自动安装 下载自动安装包,下载地址:https://www.jb51.ne...

Python 读取图片文件为矩阵和保存矩阵为图片的方法

读取图片为矩阵 import matplotlib im = matplotlib.image.imread('0_0.jpg') 保存矩阵为图片 import numpy a...

python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法

python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法

本文借用HTML的css语法,将样式表应用到窗口部件。这里只是个简单的例子,实际上样式表的语法很丰富。 以下类似于css: StyleSheet = """ QComboBox {...

python如何实现异步调用函数执行

在实现异步调用之前我们先进行什么是同步调用和异步调用 同步:是指完成事务的逻辑,先执行第一个事务,如果阻塞了,会一直等待,直到这个事务完成,再执行第二个事务,顺序执行 异...