数据分析入门_PART1python基础语法_实战项目01商铺数据文件加载及存储为pickle

以下案例用到的原数据文件欢迎大家到我的csdn下载https://download.csdn.net/download/weixin_40974922/11255740

'''
【项目01】  商铺数据加载及存储

作业要求:
1、成功读取“商铺数据.csv”文件
2、解析数据,存成列表字典格式:
[{'name':value1,'price':value2,'address':values3,'commentNum':values4,
'class':values5,'star':values6,'taste':values6,'environment':value7,'service':value8},...,{}]

注:数据处理尤其要弄清最终的输出格式,再进行编码 think twice,code once
如本题 外层【】内层{}
则制定方法 :
step1先创建listoflist【['name',value1],[]'price',value2],['address'....】
listofcouplist才能用于dict()

step2 dict(list)形成{'name':v1,"price":v2...}
step3 m=[] for循环+m.append(dic)形成最终结构

3、数据清洗:
① comment,price两个字段清洗成数字
② 清除字段缺失的数据
③ commentlist拆分成三个字段,并且清洗成数字

注数据清洗尤其观察数据有哪些错误情况,从而制定清洗方法
4、结果存为.pkl文件

'''
"\n【项目01】  商铺数据加载及存储\n\n作业要求:\n1、成功读取“商铺数据.csv”文件\n2、解析数据,存成列表字典格式:[{'var1':value1,'var2':value2,'var3':values,...},...,{}]\n3、数据清洗:\n① comment,price两个字段清洗成数字\n② 清除字段缺失的数据\n③ commentlist拆分成三个字段,并且清洗成数字\n4、结果存为.pkl文件\n\n"
#1读取数据
f=open(r'C:\Users\HASEE\Desktop\商铺数据.csv','r',encoding='utf8')
#print(f.readline())
#print(f.readline())
#print(f.readline())

#2编写数据清洗函数分别获得清洗后的标准化数据
def getCommentNum(s):
    #清洗‘我要点评’(即无店铺信息)
    if '条'not in s:
        return '无效数据'
    else:
        return s.split('                    ')[1]

def getPrice(s):
    #清洗无价格数据
    if'¥'not in s:
        return'无效数据'
    else:
        return s.split('¥')[1]

def getScore(s):
    #清理空score
    if '.'not in s:
        return'无效数据'
    else:
        ss=s.split('                                ')
       # print(ss)
        taste=ss[0][2:]
        #print(taste)
        env=ss[1][2:]
       # print(env)
        ser=ss[2][2:-1]
        return[taste,env,ser]


#3逐行读取数据,清洗数据,储存有效数据入lst1,并最终转换为listofdics m[]
m=[]
for i in f.readlines()[1:]:
    if '无效数据'not in i:
        s1 = i.split(',')
        name=s1[0]
        star=s1[3]
        cn = getCommentNum(s1[2])
        p = getPrice(s1[4])
        c=s1[0]
        ad=s1[1]
        sc=getScore(s1[-1])
        taste=sc[0]
        env=sc[1]
        ser=sc[2]
        lst1=[['name',name],['price',p],['address',ad],['commentNum',cn],
            ['class',c],['star',star],['taste',taste],['environment',env],['service',ser]]
        m.append(dict(lst1))
        
    else:
        continue
f.close()
#print(m[0:10])   


#4、结果存为.pkl文件
import pickle
fout=open(r'C:\Users\HASEE\Desktop\newtest.txt','wb')
pickle.dump(m,fout)
fout.close()
print('finished')
[{'name': '美食', 'price': '125', 'address': '望蓉城老坛酸菜鱼(合生汇店)', 'commentNum': '无效数据', 'class': '美食', 'star': '该商户暂无星级', 'taste': '8.3', 'environment': '8.4', 'service': '8.5'}, {'name': '美食', 'price': '48', 'address': '泰国街边料理', 'commentNum': '条点评', 'class': '美食', 'star': '准四星商户', 'taste': '7.4', 'environment': '7.6', 'service': '7.4'}, {'name': '美食', 'price': '21', 'address': '壹面如故(苏宁生活广场店)', 'commentNum': '条点评', 'class': '美食', 'star': '准四星商户', 'taste': '7.0', 'environment': '7.2', 'service': '7.2'}, {'name': '美食', 'price': '142', 'address': '鮨谷•Aburiya(合生汇店)', 'commentNum': '条点评', 'class': '美食', 'star': '准五星商户', 'taste': '8.9', 'environment': '8.5', 'service': '8.4'}, {'name': '美食', 'price': '无效数据', 'address': '我们的烤肉我们的馕', 'commentNum': '条点评', 'class': '美食', 'star': '准四星商户', 'taste': '7.5', 'environment': '6.8', 'service': '7.5'}, {'name': '美食', 'price': '24', 'address': '麦当劳(万达店)', 'commentNum': '条点评', 'class': '美食', 'star': '准四星商户', 'taste': '7.4', 'environment': '7.2', 'service': '7.2'}, {'name': '美食', 'price': '70', 'address': '蒸年青STEAMYOUNG(百联又一城购物中心店)', 'commentNum': '条点评', 'class': '美食', 'star': '准五星商户', 'taste': '8.6', 'environment': '8.6', 'service': '8.6'}, {'name': '美食', 'price': '14', 'address': '丸来玩趣(百联又一城购物中心店)', 'commentNum': '条点评', 'class': '美食', 'star': '准四星商户', 'taste': '7.0', 'environment': '6.5', 'service': '6.5'}, {'name': '美食', 'price': '47', 'address': '韩国雪冰(合生汇店)', 'commentNum': '条点评', 'class': '美食', 'star': '四星商户', 'taste': '7.7', 'environment': '7.5', 'service': '7.6'}, {'name': '美食', 'price': '81', 'address': '小菜园新徽菜(五角场万达广场店)', 'commentNum': '条点评', 'class': '美食', 'star': '准五星商户', 'taste': '8.5', 'environment': '8.9', 'service': '9.0'}]
finished

猜你喜欢

转载自blog.csdn.net/weixin_40974922/article/details/93473939