商铺数据的清洗
商铺数据的清洗
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的截图。
清洗后的截图: