荐 【python数据分析】—练习01商铺数据清洗
程序员文章站
2022-08-12 11:10:44
【项目01】 商铺数据加载及存储作业要求:1、成功读取“商铺数据.csv”文件2、解析数据,存成列表字典格式:[{‘var1’:value1,‘var2’:value2,‘var3’:values,…},…,{}]3、数据清洗:① comment,price两个字段清洗成数字② 清除字段缺失的数据③ commentlist拆分成三个字段,并且清洗成数字4、结果存为.pkl文件源数据格式1、读取数据# 设置路径,方式,编码f=open('C:/Users/Away/Desktop/...
【项目01】 商铺数据加载及存储
作业要求:
1、成功读取“商铺数据.csv”文件
2、解析数据,存成列表字典格式:[{‘var1’:value1,‘var2’:value2,‘var3’:values,…},…,{}]
3、数据清洗:
① comment,price两个字段清洗成数字
② 清除字段缺失的数据
③ commentlist拆分成三个字段,并且清洗成数字
4、结果存为.pkl文件
源数据格式
1、读取数据
# 设置路径,方式,编码
f=open('C:/Users/Away/Desktop/data/商铺数据.csv','r',encoding='utf8')
#前10行数据
for i in f.readlines()[:10]:
# print(i.split(',')[-1])
#整体按照逗号划分,最后一个字段为commentlist,再将其按照空格划分成3个字段
print(i.split(',')[-1].split(' '))
f.seek(0)
2、数据清洗和排除缺失数据
整体思路:
对不同的字段的处理写对应函数,对于缺失数据给统一标记最后一起处理。
#处理点评条数
def fcm(s):
if '条' in s:
return(int(s.split(' ')[0]))#按照空格划分后取第一个字段
else:
return('缺失数据')
#处理价格
def fpr(s):
if '¥' in s:
return(int(s.split('¥')[-1]))#按照货币符号划分,取最后的数字部分
else:
return('缺失数据')
评分数据的处理:首先判断是不是三个评分项都有,然后取到每一项的得分数值构成新的列表
def fcl(s):
if len(s)==3:#如果这三个评分值完整
quality = float(s[0][2:])#取第一个评分的数字部分
envi = float(s[1][2:])
service = float(s[2][2:])
return([quality,envi,service])#返回新的列表
else:
return('缺失数据')
if len(s)==3:#如果这三个评分值完整
3、数据解析存储成字典格式
创建新的列表datalst,将处理后的数据排除缺失值存储进去
#2 解析数据,存成列表字典格式:[{'var1':value1,'var2':value2,'var3':values,...},...,{}]
datalst=[]#设置一个空的列表
n = 0 #计数
f.seek(0)
for i in f.readlines()[1:]:#读取整个数据表,第一行不要
data = i.split(',')
#print(data)
classify = data[0]
# print(classify)
name = data[1]
com_count = fcm(data[2])
star = data[3]
price = fpr(data[4])
add = data[5]
#最后一项划分成3个字段
qua = fcl(data[-1].split(' '))[0]
env = fcl(data[-1].split(' '))[1]
service= fcl(data[-1].split(' '))[2]
# print(name)
#print(com_comment)
#print(price)
# print(qua,star,service,env)
#
if '缺失数据' not in [com_comment,price,qua]:
n +=1
#键值对形式存储
data_lst2 = [['classify',classify],
['name',name],
['comment_count',com_count],
['star',star],
['price',price],
['address',add],
['quality',qua],
['environment',env],
['service',service]
]
datalst.append(dict(data_lst2))#将列表转换成字典格式
#print('成功读取第%i数据:'%n)
#print(data_lst2)
else:
continue
#关闭文件读取
f.close()
print(datalst)
print('总共加载%i条数据:'%n)
4存储成pkl文件格式
#pkl
import pickle
pic = open('C:/Users/Away/Desktop/data/data.pkl','wb')
pickle.dump(datalst,pic)
pic.close()
print('完成')
本文地址:https://blog.csdn.net/J358935/article/details/107272335
上一篇: 使用Android实现水波纹动画,插件形式可直接引用
下一篇: 荐 Python菜鸟入门:day05
推荐阅读
-
荐 Python之数据分析(Numpy中读取与保存数据文件、将数据文件制成K线图)
-
荐 Python之数据分析(Numpy数据可视化:等高线图、热力图、饼图)
-
python数据分析学习(7)数据清洗与准备(1)
-
荐 python数据分析实战之超市零售分析
-
荐 Python之数据分析(三维立体图像、极坐标系、半对数坐标)
-
荐 【python数据分析】—练习01商铺数据清洗
-
2 Python数据分析 Tushare双均线与金叉死叉日期 Pandas数据清洗 级联操作 合并操作
-
python数据分析练习——FoodFacts.csv分析
-
python数据分析练习——姓名分析US_Baby_names_right.csv
-
python数据清洗为海地地震数据分析(标记地图求助信息)