数据分析之基础数据清洗
要求:
1.读取商铺数据csv文件
2.解析数据,存为列表字典格式:[{key1:value1,key2:value2.。。。}]
3.数据清洗:
3.1.comment,price两个字段完成数据清洗
3.2.清除字段缺失的数据
3.3.commentlist拆分成三个字段,并且清洗成数字
4.结果存为。pkl文件
拿到cvs文件,并且使用python打开文件,查看文件信息,先查看文件的最开始六行数据,看看文件的结构是怎么样子的,这里将文件内容以逗号进行分割
f = open("D:\\BaiduNetdiskDownload\\数据分析网易\\【非常重要】课程资料等多个文件\\【非常重要】课程资料\\CLASSDATA_ch02基础语言入门:从零开始学习Python\\CLASSDATA_ch02基础语言入门:从零开始学习Python\\商铺数据.csv", "r", encoding="utf8") for i in f.readlines()[:6]: print(i.split(","))

从得到的结果查看:comment(点评数),price(人均价格),commentlist(综合评分),三个字段的结构:
comment:展示方式为:1、我要点评 2、点评的条数数据,如果有点评的数据的话中间有空格分割
price:统一展示位人均+空格+金额
commentlist:口味数据+环境数据+服务数据
对三个数据写对应的函数进行清洗
comment清洗:
1 def fcm(s): 2 if "条" in s: 3 return(int(s.split(" ")[0])) 4 else: 5 return("缺失数据")
price清洗:
1 def fpr(s): 2 if "¥" in s: 3 return(int(s.split("¥")[-1])) 4 else: 5 return("缺失数据")
commentlist清洗:
1 def fcl(s): 2 if len(s) == 3: 3 quality = float(s[0][2:]) 4 envi = float(s[1][2:]) 5 service = float(s[2][2:]) 6 return(quality,envi,service) 7 else: 8 quality = "缺失数据" 9 envi = "缺失数据" 10 service = "缺失数据" 11 return(quality,envi,service)
将原始的数据清洗:1、去除缺失的数据,2、拆分综合评分信息为三个字段,3、价格只取数字
最后保留字段:类别,店名,点评数,星级,人均价格,地址,口味,环境,服务,将他作为字典的形式保存
1 datalist = [] 2 # 为了友好,设置一个变量n来查看处理的数据条数 3 n = 0 4 由于之前读取过文件信息所以将光标移动回文件开头 5 f.seek(0) 6 7 for i in f.readlines()[1:]: 8 # 这里逗号要区分中文和英文的格式,具体看文件里面的逗号格式 9 data = i.split(",") 10 classify = data[0] 11 name = data[1] 12 com_count = fcm(data[2]) 13 star = data[3] 14 price = fpr(data[4]) 15 add = data[5] 16 qua = fcl(data[-1].split(" "))[0] 17 env = fcl(data[-1].split(" "))[1] 18 service = fcl(data[-1].split(" "))[2] 19 if "缺失数据" not in [com_count,price,qua]: 20 n += 1 21 datalist2 = [["classify", classify], 22 ["name", name], 23 ["com_count", com_count], 24 ["star", star], 25 ["price", price], 26 ["address", add], 27 ["quality", qua], 28 ["environment", env], 29 ["service", service]] 30 datalist.append(dict(datalist2)) 31 print("成功清洗第{}条数据".format(n)) 32 print(datalist2) 33 else: 34 continue 35 print(datalist) 36 print("数据清洗完毕,一共清洗%d条数据" % n) 37 # 文件处理结束一定记住关闭文件,关闭文件,关闭文件,重要事情说三遍 38 f.close()
至此,数据清洗完成,首先查看清洗完的数据是怎么样子的

将清洗成功的数据转换成字典的格式,并且最终保存到列表中的形式

至此数据清洗完成,然后把数据通过pickle保存到文件中
1 import pickle 2 pic = open("D:\\BaiduNetdiskDownload\\数据分析网易\\【非常重要】课程资料等多个文件\\【非常重要】课程资料\\CLASSDATA_ch02基础语言入门:从零开始学习Python\\CLASSDATA_ch02基础语言入门:从零开始学习Python\\商铺数据.pk1", "wb") 3 pickle.dump(datalist,pic) 4 pic.close() 5 print("pk1文件保存完成")
总结:
1.要了解文件中的数据储存的格式,根据要求对文件中的每个字段进行对应的清洗处理并保存
2.主要用到的python知识为:字符串的索引与切片,列表的索引,文件的读取,字典的生成,列表数据的添加,pickel写入文件的方式
浙公网安备 33010602011771号