Python数据分析(6)

本文介绍了如何读取并清洗“商铺数据.csv”文件,包括comment、price和commentlist的处理。通过分段和转化,提取点评数、人均价格以及质量、环境和服务评分等关键信息。
摘要由CSDN通过智能技术生成

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值