mysql教材课后题答案玩具_使用sql分析玩具商品数据
说明
数据来源kaggle数据,为某商城部分玩具商品数据
提出问题在该商城最受欢迎的玩具是什么?
什么品牌最受欢迎?
各个分类的玩具商品的价格分布情况是什么样的?
理解数据
数据存储在mysql中,表名是toy_products_on_amazon
查看表信息
show columns from toy_products_amazon
数据表共有9列,所有的列都以文本格式进行存储,其中uniq_id是主键,其余的列含义也较为清晰,从列名就可得知。除主键外其余的列都可能存在空值,这在清洗数据时需要注意。
查看数据条数
select count(*) from toy_products_amazon
再来看每列具体的内容,查看头10条信息
select * from toy_products_amazon limit 10
product_name: 含空格的字符串
manufacturer:含空格的字符串,含有未知的生产商
price:非纯数字,带有货币符号,含有空值
number_available_in_stock:库存数 同时代有新品/二手的标识,含有空值
number_of_reviews:浏览情况,纯数字
number_of_answered_questions:有多少用户提问被回答,纯数字
average_review_rating:用户的评分,最高为5星
amazon_category_and_sub_category:用 '>' 符号进行分割分类和子分类,含有空值
数据清洗选择需要的列,并将这些列复制到新的数据表,以保证原有数据不会在操作中丢失和被改变
为了回答最开始的三个问题,需要知道商品的名称、生产商、对应的价格、浏览的情况、用户的评分以及分类信息
create table toy_products_for_analysis (unique(uniq_id))
select uniq_id, product_name, manufacturer, price,
number_of_reviews, average_review_rating,
amazon_category_and_sub_category
from toy_products_on_amazon
2. 字段重命名
本例中的数据字段名已足够明确,无需重命名
3. 删除重复值
本例中的数据有主键约束,无重复值,商品名也未发现重复
4. 处理缺失值
uniq_id是主键不可能存在缺失值
对各列进行非空值的统计可得
首先对manufacturer进行处理
select * from toy_products_for_analysis
where manufacturer is null or manufacturer = 'Unknown'
有45条数据,对应总数9300条数据的占比很小,且其中大部分的数据的用户浏览数都很小,只有其中一条的浏览量达到202数量较大,在统计最受欢迎的品牌时可能会产生影响,品牌的平均浏览数
with t as(
select sum(number_of_reviews) as number_of_manufacurer_reviews
from toy_products_for_analysis
group by manufacturer)
select avg(number_of_manufacurer_reviews) from t
其余空值可以丢弃
对price进行处理,price的空值较多接近1500条,不适合手动处理。若不想丢弃空值数据,可以填入统计值。但price字段含有货币符号无法进行计算,需要先去掉货币符合。为不影响原数据,增加新的一列并去除price字段中的货币符号后填入新的列
alter table toy_products_for_analysis add price_of_product decimal(64, 2);
update toy_products_for_analysis
set price_of_product = cast(substring_index(price, '£', -1) as decimal(64, 2))
往空值中填入同品牌,同分类的平均价格
update toy_products_for_analysis x
set x.price_of_product = (
with t as (
select manufacturer, amazon_category_and_sub_category,
avg( price_of_product ) as avg_price
from toy_products_for_analysis group by manufacturer,
amazon_category_and_sub_category
) select avg_price from t where
x.manufacturer = t.manufacturer
and x.amazon_category_and_sub_category = t.amazon_category_and_sub_category
)
where x.price_of_product is null
仍然存在空值,因部分商品的品牌在对应分类下无商品或价格为空,剩余的空值数据不多,填入所有商品的平均价格
number_of_reviews、average_review_rating与amazon_category_and_sub_category的空值数据少不超过100条数据,将空值数据丢弃
delete from toy_products_for_analysis
where amazon_category_and_sub_category is null
or number_of_reviews is null
or average_review_rating is null
or manufacturer is null
or manufacturer = 'Unkonwn'
5. 一致化处理
其中价格已经经过处理,对average_review_rating 进行处理,从字段中分离出用户评分,处理方式与处理价格时类似
alter table toy_products_for_analysis add star decimal(64, 2);
update toy_products_for_analysis
set star = cast(substring_index(average_review_rating, 'out', 1) as decimal(64, 2))
此外还需要将浏览数据转换为数字,方便进行排序和比较
alter table toy_products_for_analysis change reviews reviews integer(10) unsigned;
update ignore toy_products_for_analysis
set reviews = cast(number_of_reviews as unsigned)
6. 排序,进一步对数据进行观察
对价格,用户评分,用户的浏览进行排序
select * from toy_products_for_analysis order by price_of_product desc;
select * from toy_products_for_analysis order by star desc;
select * from toy_products_for_analysis order by number_of_reviews desc;
其中有一半以上的商品评分为满分,对商品评分的可信度保留意见
7. 异常值处理
未发现异常值
构建模型
在该商城最受欢迎的玩具是什么?
和商品受欢迎程度相关的数据有两个维度,一个是评分,一个是浏览数据,分别使用评分和浏览量作为排序的优先条件进行对比
select product_name, reviews, star
from toy_products_for_analysis order by star desc, reviews desc;
可以发现评分最高商品的浏览量只有23,是少数用户的行为,不具有代表性,改为用用户浏览量优先排序
select product_name, reviews, star
from toy_products_for_analysis order by reviews desc, star desc
什么品牌最受欢迎?
与商品类似,以品牌的总浏览量进行统计衡量
select manufacturer, sum(reviews)
from toy_products_for_analysis
group by manufacturer order by sum(reviews) desc
各个分类的玩具商品的价格分布情况是什么样的?
以商品分类为维度进行描述统计
select amazon_category_and_sub_category, avg(price_of_product),
max(price_of_product) , min(price_of_product)
from toy_products_for_analysis
group by amazon_category_and_sub_category
mysql教材课后题答案玩具_使用sql分析玩具商品数据相关推荐
- c语言教材课后题答案6,C语言谭浩强版6章课后练习题答案.doc
C语言谭浩强版6章课后练习题答案 第6章课后练习题 单项选择题 以下程序执行后,a是: int a =0,i,j; for (i=5;i>0;i--) for(j=0;j<4;j++) a ...
- 小甲鱼课后作业_大学教材的课后题答案搜索途径
1.APP:学小易 这个软件太神奇了,计算机专业的学生必备,最香的搜题软件!很多百度不到的题这里都能搜到,亲测有效. 其他专业的题也有.比如之前帮朋友搜过医学统计的题... 尽管软件占用内存很小,不过 ...
- Java EE企业级应用开发教程教材源码课后题答案
Java EE企业级应用开发教程 教材源码+课后题答案 百度网盘链接: https://pan.baidu.com/s/1icNDocxxx9GD-UHUtQQU0A 提取码:L6X6
- Android移动应用基础教程(第2版)教学视频、课后题答案、教材源码
Android移动应用基础教程(第2版) 内含教学视频.课后题答案.教材源码 百度网盘链接: https://pan.baidu.com/s/1loTwVqVC8gX1jY5HD0B1rg 提取码:L ...
- Spring Boot 企业级开发课后题答案
Spring Boot 企业级开发课后题答案 黑马程序员 加粗字体为答案 转发请注明出处[感谢] 第一章 1.1 填空题 Pivotal 团队在原有 spring 框架的基础上开发了全新的Spring ...
- linux基础教程课后答案,Linux教材课后习题答案.pdf
Linux教材课后习题答案 1.5 练习题 一.选择题 1. Linux 最早是由计算机爱好者 B 开发的. A. Richard Petersen B. Linus Torvalds C. Rob ...
- 大数据技术原理与应用—课后题答案(第一章)
大数据技术原理与应用_林子雨版_课后题答案(第一章) 1.试述信息技术发展史上的3次信息化浪潮及具体内容. 信息化浪潮 发生时间 标志 解决问题 ...
- JavaEE企业级应用开发教程 传智课后题答案
JavaEE企业级应用开发教程 传智课后题答案 第一章(Spring的基本应用) 第二章(Spring中的Bean) 第三章(3-1)(Spring AOP) 第三章(3-2)(Spring AOP) ...
- 《精通labview教程——由浅入深的范例学习(第二版)》课后题答案
<精通labview教程--由浅入深的范例学习(第二版)>课后题答案,[美]John Essick著,[译]邓科等 课后题答案偶数部分是教程自带答案,奇数题目是自制答案 下载链接: 第一章 ...
最新文章
- 阿里巴巴 Service Mesh 落地的架构与挑战
- 视频|每日CeBIT:IBM九大展区各显神通,传统工业与工业4.0的博弈
- .bat脚本自动yes_第四章: Python脚本获取聚宽(JQData)免费行情数据
- 使用@RequestParam注解和泛型遇到的问题
- Fragment学习3--底部tab布局
- 一行代码让纯文本编辑器秒变 Markdown 编辑器
- 理解Python中的装饰器
- 在html页面中封装elementUi的tree树结构
- 电脑磁盘分区数据丢失怎么办 磁盘分区丢失的数据怎么恢复
- 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)...
- python3使用staf问题_转载—越来越强大的SAFS/STAF/STAX自动化测试框架
- 领导最不赏识这5类下属
- 基于Web的文件管理系统,支持Office、WPS预览/编辑、在线解压缩、文件分享、文件加密、远程存储、远程文件推送、秒传、断点
- WPF入门教程详解1——label、TextBlock、Button、Border、RadioButton、CheckBox、 数据绑定、案例、ToolTip、GroupBox、Expand、Fram
- Excel---Lookup函数与数组
- 如何解决Intel SCS Can not create AD AMT Object error
- redirect_uri 域名与后台配置不一致 10003
- 自然语言处理:分词评测指标——准确率(Precision)、召回率(Recall)、F值(F-Measure)
- 微信支付和微信红包设计用例
- 【1】高危漏洞利用工具 (2023.1.6更新)-- Apt_t00ls
热门文章
- CAD 开发寻找最短距离算法
- RainyMood 享受漫步在雨中、又不用全身濕透的浪漫,幫助你文思泉湧的雨聲產生器...
- Python 脚本:统计Kindle内电子书数量,并编号存储.txt文件
- 如何同时查询每个快递的物流,并筛选出中途更改地址的单号
- 追女孩子非常火的一片文章
- 漫游语音识别技术——带你走进语音识别技术的世界
- 魅族android耗电量,魅族18/18 Pro续航、充电测试简报
- 函数返回值为 const 指针、const 引用
- 路由器网口1一直闪烁正常吗_为什么就是连不上网!网口1一会闪的特别快,网口2闪烁正常!为啥电脑也连不上网...
- 简述计算机噪音解决方法,电脑噪音很烦?教你几招解决