您的位置:首页 > 编程语言 > Python开发

Python 数据分析微专业课程--项目01商铺数据加载及存储

2018-08-29 21:05 676 查看

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

1.项目说明

读取商铺数据文件,并对数据进行解析和清洗,并将结果储存

2.项目具体要求

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

3.实现思路:

  • 1.使用open语句读取数据,使用for循环语句对每一行进行解析和清洗,并存储成[[”]]格式,
  • 2.使用dict()函数将数据转换成列表字典格式,存入列表中,直到循环结束,得到全部成功解析和清洗的数据。
  • 3.使用pickle.dump()函数将数据存储成pkl文件

4.实现过程:

1.数据读取:

f = open('C:/Users/Hjx/Desktop/商铺数据.csv','r',encoding='utf8')
for i in f.readlines()[:5]:
print(i.split(','))

说明:第一步使用open语句读取商铺数据,然后查看前5条数据

2.创建comment、price、commentlist清洗函数

def fcm(s):
if '条' in s:
return int(s.split(' ')[0])
else:
return '缺失数据'

def fpr(s):
if '¥' in s:
return float(s.split('¥')[-1])
else:
return  '缺失数据'

def fcl(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  '缺失数据'

说明:因为循环对每一条数据进行解析和清洗,因此需要创建清洗函数
根据数据特征需要进行解析和清洗的主要是comment、price、commentlist三个字段
fcm函数:清洗comment字段,用空格分段,选取结果list的第一个为点评数,并且转化为整型
fpr函数:清洗price字段,用¥分段,选取结果list的最后一个为人均价格,并且转化为浮点型
fcl函数:清洗commentlist字段,price字段用空格分段,分别清洗出质量、环境及服务数据,并转化为浮点型

3.数据清洗:

datalst = []  # 创建空列表,用于存储字典格式的数据

f.seek(0) #因为之前有打印前五行,所以需要将指针调回开始位置
n = 0  # 创建计数变量
for i in f.readlines():
data = i.split(',')  #将该行数据按','分离开
classify = data[0]             # 提取分类
name = data[1]                 # 提取店铺名称
comment_count = fcm(data[2])   # 提取评论数量
star = data[3]                 # 提取星级
price = fpr(data[4])           # 提取人均
add = data[5]                  # 提取地址
qua = fcl(data[6])[0]          # 提取质量评分
env = fcl(data[6])[1]          # 提取环境评分
ser = fcl(data[6])[2]          # 提取服务评分
if  '缺失数据' not in [comment_count, price, qua]:   # 用于判断是否有数据缺失
n += 1
data_re = [['classify',classify],
['name',name],
['comment_count',comment_count],
['star',star],
['price',price],
['address',add],
['quality',qua],
['environment',env],
['service',ser]]
datalst.append(dict(data_re))   # 生成字典,并存入列表datalst
print('成功加载%i条数据' %n)
else:
continue

print(datalst)
print('总共加载%i条数据' %n)

说明:使用for 循环语句逐行操作,提取该行的各个字段数据,若该行没有’缺失数据’,这将提取的数据转换成字典格式
并存储到列表中,直到所有数据操作完成。

4.数据存储.pkl数据

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

说明:将数据存成了pkl文件需要导入pickle模块,使用pickle.dump()方法将数据存储到指定的文件中,
若需要读取则使用 pickle.load()方法。

5.总结

  • 该项目对python 基础知识学习状况进行检验,该项目使用到了python学习中的各个知识点,
  • 包括:变量,数据类型及其转换,列表和字典操作,条件及循环语句运用,函数编程,数据读写等
  • 通过对该项目的操作,将python的基础知识做了一个全面梳理和运用,基本具备了处理解析和清洗数据的能力
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐