说明

数据来源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分析玩具商品数据相关推荐

  1. 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 ...

  2. 小甲鱼课后作业_大学教材的课后题答案搜索途径

    1.APP:学小易 这个软件太神奇了,计算机专业的学生必备,最香的搜题软件!很多百度不到的题这里都能搜到,亲测有效. 其他专业的题也有.比如之前帮朋友搜过医学统计的题... 尽管软件占用内存很小,不过 ...

  3. Java EE企业级应用开发教程教材源码课后题答案

    Java EE企业级应用开发教程 教材源码+课后题答案 百度网盘链接: https://pan.baidu.com/s/1icNDocxxx9GD-UHUtQQU0A 提取码:L6X6

  4. Android移动应用基础教程(第2版)教学视频、课后题答案、教材源码

    Android移动应用基础教程(第2版) 内含教学视频.课后题答案.教材源码 百度网盘链接: https://pan.baidu.com/s/1loTwVqVC8gX1jY5HD0B1rg 提取码:L ...

  5. Spring Boot 企业级开发课后题答案

    Spring Boot 企业级开发课后题答案 黑马程序员 加粗字体为答案 转发请注明出处[感谢] 第一章 1.1 填空题 Pivotal 团队在原有 spring 框架的基础上开发了全新的Spring ...

  6. linux基础教程课后答案,Linux教材课后习题答案.pdf

    Linux教材课后习题答案 1.5 练习题 一.选择题 1. Linux 最早是由计算机爱好者 B 开发的. A. Richard Petersen B. Linus Torvalds C. Rob ...

  7. 大数据技术原理与应用—课后题答案(第一章)

    大数据技术原理与应用_林子雨版_课后题答案(第一章) 1.试述信息技术发展史上的3次信息化浪潮及具体内容. 信息化浪潮 发生时间 标志  解决问题                           ...

  8. JavaEE企业级应用开发教程 传智课后题答案

    JavaEE企业级应用开发教程 传智课后题答案 第一章(Spring的基本应用) 第二章(Spring中的Bean) 第三章(3-1)(Spring AOP) 第三章(3-2)(Spring AOP) ...

  9. 《精通labview教程——由浅入深的范例学习(第二版)》课后题答案

    <精通labview教程--由浅入深的范例学习(第二版)>课后题答案,[美]John Essick著,[译]邓科等 课后题答案偶数部分是教程自带答案,奇数题目是自制答案 下载链接: 第一章 ...

最新文章

  1. 阿里巴巴 Service Mesh 落地的架构与挑战
  2. 视频|每日CeBIT:IBM九大展区各显神通,传统工业与工业4.0的博弈
  3. .bat脚本自动yes_第四章: Python脚本获取聚宽(JQData)免费行情数据
  4. 使用@RequestParam注解和泛型遇到的问题
  5. Fragment学习3--底部tab布局
  6. 一行代码让纯文本编辑器秒变 Markdown 编辑器
  7. 理解Python中的装饰器
  8. 在html页面中封装elementUi的tree树结构
  9. 电脑磁盘分区数据丢失怎么办 磁盘分区丢失的数据怎么恢复
  10. 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)...
  11. python3使用staf问题_转载—越来越强大的SAFS/STAF/STAX自动化测试框架
  12. 领导最不赏识这5类下属
  13. 基于Web的文件管理系统,支持Office、WPS预览/编辑、在线解压缩、文件分享、文件加密、远程存储、远程文件推送、秒传、断点
  14. WPF入门教程详解1——label、TextBlock、Button、Border、RadioButton、CheckBox、 数据绑定、案例、ToolTip、GroupBox、Expand、Fram
  15. Excel---Lookup函数与数组
  16. 如何解决Intel SCS Can not create AD AMT Object error
  17. redirect_uri 域名与后台配置不一致 10003
  18. 自然语言处理:分词评测指标——准确率(Precision)、召回率(Recall)、F值(F-Measure)
  19. 微信支付和微信红包设计用例
  20. 【1】高危漏洞利用工具 (2023.1.6更新)-- Apt_t00ls

热门文章

  1. CAD 开发寻找最短距离算法
  2. RainyMood 享受漫步在雨中、又不用全身濕透的浪漫,幫助你文思泉湧的雨聲產生器...
  3. Python 脚本:统计Kindle内电子书数量,并编号存储.txt文件
  4. 如何同时查询每个快递的物流,并筛选出中途更改地址的单号
  5. 追女孩子非常火的一片文章
  6. 漫游语音识别技术——带你走进语音识别技术的世界
  7. 魅族android耗电量,魅族18/18 Pro续航、充电测试简报
  8. 函数返回值为 const 指针、const 引用
  9. 路由器网口1一直闪烁正常吗_为什么就是连不上网!网口1一会闪的特别快,网口2闪烁正常!为啥电脑也连不上网...
  10. 简述计算机噪音解决方法,电脑噪音很烦?教你几招解决