Python数据分析实战01-商铺数据的清洗和存储(附资源文件)

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

文件可以在–我的资源列表下载,我设置的免费,后台给我加到1的

1.作业要求:

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

2.商铺数据情况

用excl打开
在这里插入图片描述
在这里插入图片描述
用记事本打开
在这里插入图片描述
完整代码为:

import os 
os.chdir('D:/桌面/')
f = open('商铺数据.csv','r',encoding = 'utf8')

#清洗comment数据
def fcm(s):
    if '条' in s:
        return(int(s.split(' ')[0]))
    else:
        return('缺失数据')
    
#清洗price数据
def fpr(s):
    if '¥' in s:
        return(s.split('¥')[-1])
    else:
        return('缺失数据')
    
#commentlist拆分成三个字段,并且清洗成数字,注意参量
def fcml(s):
    if len(s)==3:
        quality = float(s[0][3:])
        envi = float(s[1][3:])
        service = float(s[2][3:])
        return([quality,envi,service])
    else:
        print('缺失数据')
n=0
data = []
for line in f.readlines()[1:20]:
    str=line.split(',')
    classify = str[0]
    name = str[1]
    comment = fcm(str[2])
    star =str[3]
    price = fpr(str[4])
    address = str[5]
    quality = fcml(str[-1].split('                                '))[0]
    evi = fcml(str[-1].split('                                '))[1]
    service = fcml(str[-1].split('                                '))[2]
    n+=1
    if '缺失数据' not in []:
        data_lst = [['classify',classify],
                    ['name',name],
                    ['comment',comment],
                    ['star',star],
                    ['price',price],
                    ['address',address],
                    ['qualith',quality],
                    ['evi',evi],
                    ['service',service]]
       # data.append(dict(data_lst))
        data.append(dict(data_lst))
        print('%i条数据成功读取'%n)
    else:
        continue
f.close()

import pickle
pic = open('C:/Users/Hjx/Desktop/data.pkl','wb')
pickle.dump(datalst,pic)
pic.close()
print('finished!')

3.代码实现

对整个作业的要求进行分析,结合所学内容,制定代码模块计划。
在数据清洗过程中需要构建三个函数,分别完成:清洗成数字和拆分片段。
对于csv文件,其特点为以‘,’分割,这就为数据单元的划分和取出提供了便利。划分的数据单元为列表。
对源csv文件,进行处理;

import os
f = open('D:/桌面/商铺数据.csv')	
for i in f.readlines()[:10]:
	str = i.split(',')
	#此时,每一个数据为
美食 望蓉城老坛酸菜鱼(合生汇店) 我要点评 该商户暂无星级 人均                                        ¥125 翔殷路1099号合生汇5F 口味8.3                                环境8.4                                服务8.5

作业1 读取商铺数据

import os
f = open('D:/桌面/商铺数据.csv')	
for i in f.readlines():
	print(i)

作业3 数据清洗-comment,price两个字段清洗成数字
commen数据
首先观察comment数据情况,发现有效数据为整数,其他为无效数据。同时数据源中还存在空白数据。

def fcom(s):
	if '条' in s:
		str = s.split(' ')
		return(str[0])
	else:
		return('数据缺失')
清洗comment字段,用空格分段,选取结果list的第一个为点评数

在这里插入图片描述

def fpri(s):
	if '¥' in s:
		str = s.split('¥')[-1]
		return(str)
	else:
		return('数据缺失')
清洗price字段,用¥分段,选取结果list的最后一个为人均价格

作业3 数据清洗-commentlist拆分成三个字段,并且清洗成数字
在这里插入图片描述


def fcoml(s):
	if len(s)==3:
		quality = float(s[0][3:])
        envi = float(s[1][3:])
        service = float(s[2][3:])
       	return([quality,envi,service])
    else:
        print('缺失数据')
#清洗commentlist字段,price字段用空格分段,分别清洗出质量、环境及服务数据
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值