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

时间:2021-05-22

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

noise-data-1.txt:

5.1 3.5 1.4 0.24.9 3 1.4 0.24.7 3.2 1.3 0.24.6 3.1 1.5 0.25 3.6 1.4 0.25.4 3.9 1.7 0.44.6 3.4 1.4 0.35 3.4 1.5 0.24.4 2.9 1.4 0.24.9 -3.1 1.5 0.15.4 3.7 1.5 0.24.8 3.4 1.6 0.24.8 3 -1.4 0.14.3 3 1.1 0.15.8 4 1.2 0.25.7 4.4 1.5 0.45.4 3.9 1.3 0.45.1 3.5 1.4 0.35.7 3.8 1.7 0.35.1 3.8 -1.5 0.35.4 3.4 1.7 0.25.1 3.7 1.5 0.44.6 3.6 1 0.25.1 3.3 1.7 0.54.8 3.4 1.9 0.2

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

import numpy as npdata = []my_list = []con=0noise_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+=1for 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_listdef 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 file1filename='clean_data.txt'file_write(filename,my_list)

运行结果如下:

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章