美文网首页数据告诉你答案
python数据分析:商铺数据加载及存储

python数据分析:商铺数据加载及存储

作者: 小刘的老刘 | 来源:发表于2019-07-22 10:19 被阅读18次

    人生苦短,我用Python

    首先导入os模块,设置默认路径

    import os
    os.chdir('C:/Users/花伦同学/Desktop/01/')#根据自己的文件存放路径修改
    

    读取数据,并查看数据

    f = open('商铺数据.csv','r',encoding='utf8')
    print(f.readlines())
    
    商铺数据

    根据读取的原始数据进行分析,可将数据用逗号(' ,')拆分。根据拆分后的数据特点进行数据清洗处理。对不存在的数据替换为"缺失数据"。
    这里先设置3个清洗函数。

    #清洗数据comment
    def fcom(d):
        if "条" in d:
            return int(d.split(' ')[0])
        else:
            return '缺失数据'
    #清洗数据price    
    def fpri(d):
        if "¥" in d:
            return float(d.split("¥")[-1])
        else:
            return '缺失数据'
    #清洗数据commentlist    
    def fcml(d):
        if ' ' in d:
            flavor = d.split('                                ')[0][2:]          #口味
            environment = d.split('                                ')[1][2:]     #环境
            service = d.split('                                ')[2][2:-1]       #服务
            return flavor,environment,service
        else:
            return '缺失数据'
    

    下一步就可以开始数据清洗。但在开始清洗之前有个重要的步骤:就将读取光标移动到数据的最开始位置,代码为"f.seek(0)"。
    重要的事情说三遍:光标移到开始位置!光标移到开始位置!光标移到开始位置!

    f.seek(0)
    

    创建空列表,用以存储数据

    m = []
    m0 = []
    

    开始数据清洗。

    for line in f.readlines()[1:10]:#这里只加载了部分数据,可修改为[1:]清洗全部数据
        m = line.split(',')
        classify = m[0]
        name = m[1]
        comment = fcom(m[2])
        star = m[3]
        price = fpri(m[4])
        address = m[5]
        flavor = fcml(m[6])[0]
        environment = fcml(m[6])[1]
        service = fcml(m[6])[2]
        
        if '缺失数据' in m:
            continue
        else:
            n += 1
            m1 = [['classify',classify],
                 ['name',name],
                 ['comment',comment],
                 ['star',star],
                 ['price',price],
                 ['address',address],
                 ['flavor',flavor],
                 ['environment',environment],
                 ['service',service]]
            m0.append(dict(m1))
    
    print(m0)
    print('一共加载%s次数据' %n)
    

    然后将清洗好的数据存为pickle模式

    import pickle#导入pickle模块
    
    pic = open ('商铺数据.pkl','wb')
    pickle.dump(m0,pic)#存储
    #print (pic)
    pic.close()#关闭文件
    

    试着读取一下刚刚存的数据

    pic2 = open ('商铺数据.pkl','rb')
    data1 = pickle.load(pic2)
    print(data1)
    
    清洗后的商铺数据

    说明数据清洗成功了!

    相关文章

      网友评论

        本文标题:python数据分析:商铺数据加载及存储

        本文链接:https://www.haomeiwen.com/subject/pyxilctx.html