全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1294 0
2020-12-29
CDA人工智能学院致力于以优质的人工智能在线教育资源助力学员的DT职业梦想!课程内容涵盖数据分析机器学习深度学习人工智能tensorFlowPyTorch知识图谱等众多核心技术及行业案例,让每一个学员都可以在线灵活学习,快速掌握AI时代的前沿技术。PS:私信我即可获取CDA会员1个月免费试听机会

下面小编就为大家分享一篇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)):
if my_list[j].count('.')==0:
  miss_row=[]
  for a in range(0,len(my_list)):
  if float(my_list[a])<0:
   miss_row.append(-float(my_list[a]))
  miss_row.append(float(my_list[a]))
  my_average=round(np.average(miss_row),1)
  my_list[j]=my_average
else:
  if float(my_list[j])<0:
   my_list[j]=-float(my_list[j])
  my_list[j]=float(my_list[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)

运行结果如下:

20180719065809_78451.png

以上这篇python实现数据预处理之填充缺失值的示例就是小编分享给大家的全部内容了。

29C446FFF799701B5098749DB47B5891.jpg

扫码关注CDA公众号,即可获取最新版数据分析题库大全CDA免费精品课70+


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群