商铺数据加载处理
1. 成功读取“商铺数据.csv”文件
f = open('商铺数据.csv','r',encoding='utf8')
for i in f.readlines()[6:15]:
print(i.split(','))
2. 创建comment、price、commentlist清洗函数
2.1 comment清洗函数
- 用空格分段,选取结果list的第一个为点评数,并且转化为整型
def fcomment(s):
if '条' in s:
return int(s.split(' ')[0])
else:
return '缺失数据'
2.2 print清洗函数
- 用¥分段,选取结果list的最后一个为人均价格,并且转化为浮点型
def fprice(s):
if '¥' in s:
return float(s.split('¥')[-1])
else:
return '缺失数据'
2.3 commentlist清洗函数
- 用空格分段,分别清洗出质量、环境及服务数据,并转化为浮点型
def fcommentl(s):
if ' ' in s:
quality = float(s.split(' ')[0][2:])
environment = float(s.split(' ')[1][2:])
service = float(s.split(' ')[2][2:-1])
return [quality,environment,service]
else:
return '缺失数据'
3. 数据处理、清洗
以前三十行数据为列
datalist = [] # 创建空列表
f.seek(0)
n = 0 # 创建计数变量
for i in f.readlines()[1:30]:
data = i.split(',')
#print(data)
classify = data[0] # 提取分类
name = data[1] # 提取店铺名称
comment_count = fcomment(data[2]) # 提取评论数量
star = data[3] # 提取星级
price = fprice(data[4]) # 提取人均
address = data[5] # 提取地址
quality = fcommentl(data[6])[0] # 提取质量评分
env = fcommentl(data[6])[1] # 提取环境评分
service = fcommentl(data[6])[2] # 提取服务评分
if '缺失数据' not in [comment_count, price, quality]: # 用于判断是否有数据缺失
n += 1
data_re = [['classify',classify],
['name',name],
['comment_count',comment_count],
['star',star],
['price',price],
['address',address],
['quality',quality],
['environment',env],
['service',service]]
datalist.append(dict(data_re)) #字典生成,并存入列表datalist
print('成功加载%i条数据' %n)
else:
continue
print(datalist)
print('总共加载%i条数据' %n)