商铺数据的清洗
商铺数据的清洗
2019/8/9
#项目描述:将爬取下来的数据进行清洗,删除无效数据。
def c_comment(s): if "条" in s: return float(s.split("条")[0]) else: return "缺失数据" def c_price(s): if "¥" in s: return s.split("¥")[1] else: return "缺失数据" def c_commentlist(s): st1 = s.split(" ") if len(st1) == 3: a = float(st1[0][2:5]) b = float(st1[1][2:5]) c = float(st1[2][2:5]) return ([a,b,c]) else: return "缺失数据" f = open("F:\\360MoveData\\Users\\20122\\Desktop\\商铺数据.csv","r",encoding="utf8") data = [] n = 0 # 清洗后的总条数 f.seek(0) for line in f.readlines()[1:]: st1 = line.split(",") classify = st1[0] name = st1[1] comment_num = c_comment(st1[2]) star = st1[3] price_num = c_price(st1[4]) address = st1[5] commentlist_kouwei = c_commentlist(st1[-1])[0] commentlist_huanjing = c_commentlist(st1[-1])[1] commentlist_fuwu = c_commentlist(st1[-1])[2] if "数据缺失" not in line: data_lst1 = [["classify",classify], ["name",name], ["comment_num",comment_num], ["star",star], ["price_num",price_num], ["address",address], ["commentlist_kouwei",commentlist_kouwei], ["commentlist_huanjing",commentlist_huanjing], ["commentlist_fuwu",commentlist_fuwu]] data.append(dict(data_lst1)) n +=1 else: continue print(data) print("成功加载%i条数据" %n) import pickle pic = open("F:\\360MoveData\\Users\\20122\\Desktop\\商铺数据1.pkl","wb") pickle.dump(data,pic) f.close()
总结:
1、通过函数的定义,将那些数据清洗的方法进行包装,方便代码的阅读。
2、记得在每次在打开文件后要将文件关闭。
3、记得将清洗后的数据保存为.pkl的格式。
要清晰的数据.scv的截图。
清洗后的截图: