数据的加载 - 清洗处理 - 分组分类 - 存储

数据的加载 - 清洗处理 - 分组分类 - 存储

源数据“商铺数据.csv”

在这里插入图片描述

读取.csv文件
path1 = 'D:/桌面文件/Python/first/商铺数据.csv'
f = open(path1,'r',encoding='utf-8')

\# print(f.read())        
f.seek(0)

# 做前期准备工作,建立空列表和空字符串
m = []     #建立一个空列表,用于存储数据
n = 0
cm = [] 
清洗掉comment数据
# 清洗掉comment数据
def fcm(s):
    if '条' in s:
        return(int(s.split(' ')[0]))
    else:
        return("缺失数据")
清洗掉price数据
# 清洗掉price数据
def fpc(p):
    if '¥' in p:
        return(int(p.split('¥')[1]))
    else:
        return("缺失数据")
清洗掉commentlist数据
# 清洗掉commentlist数据
def fcl(l):
    l = l.split("                                ")
    # for i in l:
    #     print(i)

    if len(l) == 3:
        quality = float(l[0][3:])
        envi = float(l[1][3:])
        service = float(l[2][3:])
        return(quality,envi,service)
    else:
        return("缺失数据")
将数据按规则进行拆分
for line in f.readlines()[:5]:
    n = n + 1
    # 用逗号拆分开数据,并观察数据,做整理
    stl = line.split(",")


    classify = stl[0]
    name = stl[1]
    comment = stl[2]
    star = stl[3]
    price = stl[4]
    address = stl[5]
    commentlist = stl[6]
将每行数据做成嵌套列表
    # 将每行数据做成嵌套列表
    # data1 = [['classify',classify],['name',name],['comment',fcm(comment)],['star',star],['price',fpc(price)],['address',address],['commentlist',commentlist]]

    # data = [['classify',classify],['name',name],['comment',fcm(comment)],['star',star],['price',fpc(price)],['address',address],['质量',commentlist[2:5]],["环境",commentlist[39:42]],['服务',[commentlist[76:79]]]]
    data = [['classify',classify],['name',name],['comment',fcm(comment)],['star',star],['price',fpc(price)],['address',address],['质量',fcl(commentlist)[0]],["环境",fcl(commentlist)[1]],['服务',[fcl(commentlist)[2]]]]

    # 生成字典,并追加如列表m        
    m.append(dict(data))    


    # print(commentlist)
    # print(fcl(commentlist))
将生成的内容导入到pkl文件
# 存储为pkl文件
import pickle


pic = open( 'D:/桌面文件/data.pkl', 'wb')
# 以二进制来存储:rb, wb, wrb, ab

pickle.dump(m,pic)
pic.close()
print('文件导入成功')
# 将一个字典数据存成了pkl文件
读取刚导入的文件
# 读取刚导入的文件
f = open( 'D:/桌面文件/data.pkl', 'rb')

st = pickle.load(f)
for i in st:
    print(i)

print('文件读取成功')

all code

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

作业要求:
1、成功读取“商铺数据.csv”文件
2、解析数据,存成列表字典格式:[{'var1':value1,'var2':value2,'var3':values,...},...,{}]
3、数据清洗:
① comment,price两个字段清洗成数字
② 清除字段缺失的数据
③ commentlist拆分成三个字段,并且清洗成数字
4、结果存为.pkl文件
'''

# 读取.csv文件
path1 = 'D:/桌面文件/Python/first/商铺数据.csv'
f = open(path1,'r',encoding='utf-8')
# print(f.read())               
f.seek(0)


# 将每一行都存储成列表字典格式
m = []     #建立一个空列表,用于存储数据
n = 0
cm = [] 


# 清洗掉comment数据
def fcm(s):
    if '条' in s:
        return(int(s.split(' ')[0]))
    else:
        return("缺失数据")


# 清洗掉price数据
def fpc(p):
    if '¥' in p:
        return(int(p.split('¥')[1]))
    else:
        return("缺失数据")


# 清洗掉commentlist数据
def fcl(l):
    l = l.split("                                ")
    # for i in l:
    #     print(i)

    if len(l) == 3:
        quality = float(l[0][3:])
        envi = float(l[1][3:])
        service = float(l[2][3:])
        return(quality,envi,service)
    else:
        return("缺失数据")





for line in f.readlines()[:5]:      #数据过多,仅测试前五条
    n = n + 1
    # 用逗号拆分开数据,并观察数据,做整理
    stl = line.split(",")


    classify = stl[0]
    name = stl[1]
    comment = stl[2]
    star = stl[3]
    price = stl[4]
    address = stl[5]
    commentlist = stl[6]



    # 将每行数据做成嵌套列表
    # data1 = [['classify',classify],['name',name],['comment',fcm(comment)],['star',star],['price',fpc(price)],['address',address],['commentlist',commentlist]]

    # data = [['classify',classify],['name',name],['comment',fcm(comment)],['star',star],['price',fpc(price)],['address',address],['质量',commentlist[2:5]],["环境",commentlist[39:42]],['服务',[commentlist[76:79]]]]
    data = [['classify',classify],['name',name],['comment',fcm(comment)],['star',star],['price',fpc(price)],['address',address],['质量',fcl(commentlist)[0]],["环境",fcl(commentlist)[1]],['服务',[fcl(commentlist)[2]]]]

    # 生成字典,并追加如列表m        
    m.append(dict(data))    


    # print(commentlist)
    # print(fcl(commentlist))



for i in m:
    print(i)
print('\n数据转换完成!总共转换%i个数据'%n)




# 存储为pkl文件
import pickle


pic = open( 'D:/桌面文件/data.pkl', 'wb')
# 以二进制来存储:rb, wb, wrb, ab

pickle.dump(m,pic)
pic.close()
print('文件导入成功')
# 将一个字典数据存成了pkl文件

# 读取刚导入的文件
f = open( 'D:/桌面文件/data.pkl', 'rb')

st = pickle.load(f)
for i in st:
    print(i)

print('文件读取成功')

运行结果

PS C:\Users\admin> & python d:/桌面文件/Python/Untitled-1.py
{'classify': '\ufeffclassify', 'name': 'name', 'comment': '缺失数据', 'star': 'star', 'price': '缺失数据', 'address': 'address', '质量': '缺', '环境': '失', '服务': ['数']}
{'classify': '美食', 'name': '望蓉城老坛酸菜鱼(合生汇店)', 'comment': '缺失数据', 'star': '该商户暂无星级', 'price': 125, 'address': '翔殷路1099号合生汇5F', '质量': 0.3, '环境': 0.4, '服务': [0.5]}
{'classify': '美食', 'name': '泰国街边料理', 'comment': 74, 'star': '准四星商户', 'price': 48, 'address': '黄兴路合生汇B2美食集市内', '质量': 0.4, '环境': 0.6, '服务': [0.4]}
{'classify': '美食', 'name': '壹面如故(苏宁生活广场店)', 'comment': 265, 'star': '准四星商户', 'price': 21, 'address': '邯郸路585号苏宁生活广场B1层', '质量': 0.0, '环境': 0.2, '服务': [0.2]}
{'classify': '美食', 'name': '鮨谷•Aburiya(合生汇店)', 'comment': 2748, 'star': '准五星商户', 'price': 142, 'address': '翔殷路1099号合生广场5楼23、28铺位', '质量': 0.9, '环境': 0.5, '服务': [0.4]}

数据转换完成!总共转换5个数据
文件导入成功
{'classify': '\ufeffclassify', 'name': 'name', 'comment': '缺失数据', 'star': 'star', 'price': '缺失数据', 'address': 'address', '质量': '缺', '环境': '失', '服务': ['数']}
{'classify': '美食', 'name': '望蓉城老坛酸菜鱼(合生汇店)', 'comment': '缺失数据', 'star': '该商户暂无星级', 'price': 125, 'address': '翔殷路1099号合生汇5F', '质量': 0.3, '环境': 0.4, '服务': [0.5]}
{'classify': '美食', 'name': '泰国街边料理', 'comment': 74, 'star': '准四星商户', 'price': 48, 'address': '黄兴路合生汇B2美食集市内', '质量': 0.4, '环境': 0.6, '服务': [0.4]}
{'classify': '美食', 'name': '壹面如故(苏宁生活广场店)', 'comment': 265, 'star': '准四星商户', 'price': 21, 'address': '邯郸路585号苏宁生活广场B1层', '质量': 0.0, '环境': 0.2, '服务': [0.2]}
{'classify': '美食', 'name': '鮨谷•Aburiya(合生汇店)', 'comment': 2748, 'star': '准五星商户', 'price': 142, 'address': '翔殷路1099号合生广场5楼23、28铺位', '质量': 0.9, '环境': 0.5, '服务': [0.4]}
文件读取成功
源数据(.csv)

数据过长,仅展示部分数据

classify,name,comment,star,price,address,commentlist
美食,望蓉城老坛酸菜鱼(合生汇店),我要点评,该商户暂无星级,人均                                        ¥125,翔殷路1099号合生汇5F,口味8.3                                环境8.4                                服务8.5
美食,泰国街边料理,74                    条点评,准四星商户,人均                                        ¥48,黄兴路合生汇B2美食集市内,口味7.4                                环境7.6                                服务7.4
美食,壹面如故(苏宁生活广场店),265                    条点评,准四星商户,人均                                        ¥21,邯郸路585号苏宁生活广场B1层,口味7.0                                环境7.2                                服务7.2
美食,鮨谷•Aburiya(合生汇店),2748                    条点评,准五星商户,人均                                        ¥142,翔殷路1099号合生广场52328铺位,口味8.9                                环境8.5                                服务8.4
美食,我们的烤肉我们的馕,5                    条点评,准四星商户,人均                                    -,邯郸路399-D3号,口味7.5                                环境6.8                                服务7.5
美食,麦当劳(万达店),785                    条点评,准四星商户,人均                                        ¥24,邯郸路600号万达商业广场B1楼A05号铺,口味7.4                                环境7.2                                服务7.2
美食,蒸年青STEAMYOUNG(百联又一城购物中心店),3779                    条点评,准五星商户,人均                                        ¥70,淞沪路8号百联又一城购物中心7,口味8.6                                环境8.6                                服务8.6
美食,丸来玩趣(百联又一城购物中心店),458                    条点评,准四星商户,人均                                        ¥14,淞沪路8号百联又一城购物中心B1层,口味7.0                                环境6.5                                服务6.5
美食,韩国雪冰(合生汇店),1280                    条点评,四星商户,人均                                        ¥47,翔殷路1099号合生汇4F,口味7.7                                环境7.5                                服务7.6
美食,小菜园新徽菜(五角场万达广场店),85                    条点评,准五星商户,人均                                        ¥81,邯郸路600号万达商业广场特力时尚汇3,口味8.5                                环境8.9                                服务9.0
美食,生日聚汇(杨浦店),2                    条点评,准四星商户,人均                                    -,淞沪路8号百联又一城6,口味7.0                                环境7.0                                服务7.0
美食,阿满鸡排(合生汇店),30                    条点评,四星商户,人均                                        ¥17,翔殷路1099号合生汇4,口味7.9                                环境8.0                                服务7.7
美食,莆田餐厅(百联又一城购物中心店),988                    条点评,四星商户,人均                                        ¥150,淞沪路8号百联又一城购物中心7,口味8.0                                环境8.4                                服务8.0
美食,旬彩(百联又一城购物中心店),152                    条点评,准四星商户,人均                                        ¥16,淞沪路8号百联又一城购物中心B1层,口味7.2                                环境7.1                                服务7.2
美食,吴茂兴本帮面(五角场店),72                    条点评,准四星商户,人均                                        ¥21,政旦东路34,口味7.4                                环境7.4                                服务7.6
美食,雀舞云南菜(合生汇店),3627                    条点评,四星商户,人均                                        ¥99,翔殷路1099号合生汇5F,口味8.0                                环境8.5                                服务8.6
美食,开心膳(joyeusesalade悦沙拉五角场店),4                    条点评,准四星商户,人均                                    -,邯郸路600号四楼D-001,口味7.4                                环境7.4                                服务7.4
美食,阳光客(城市集市合生汇店),336                    条点评,准四星商户,人均                                        ¥79,黄兴路2228号合生汇B2层城市集市C8商户,口味7.1                                环境7.6                                服务7.7
美食,越打星YuetDaSing(合生汇店),264                    条点评,四星商户,人均                                        ¥48,翔殷路1099号合生汇B2城市集市C9,口味8.0                                环境7.7                                服务7.8
美食,鲜榨果汁 Juice Bar(巴黎春天五角场店),4                    条点评,三星商户,人均                                    -,淞沪路1号巴黎春天B1层,口味6.8                                环境6.8                                服务6.9
美食,MAKA MAKA玛卡玛卡滋蛋仔(五角场店),67                    条点评,四星商户,人均                                        ¥26,邯郸路399号D15-1,口味8.2                                环境8.4                                服务8.4
美食,城市集市(合生汇店),226                    条点评,准五星商户,人均                                        ¥47,黄兴路2228号合生汇B2层城市集市,口味8.4                                环境8.5                                服务8.2
美食,甜蜜食堂(杨浦店),2                    条点评,准四星商户,人均                                    -,淞沪路100,口味7.2                                环境7.2                                服务7.2
美食,许留山(合生汇店),375                    条点评,三星商户,人均                                        ¥35,翔殷路1099号合生汇4F,口味6.9                                环境7.2                                服务6.5
美食,汉蒸坊蒸汽海鲜主题餐厅(合生汇店),830                    条点评,四星商户,人均                                        ¥165,翔殷路1099号合生汇5F,口味7.9                                环境7.7                                服务7.9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值