用Python分析2000款避孕套,得出这些有趣的结论
到现在为止,我们的淘宝教程已经写到了第四篇,前三篇分别是:
- 第一篇:Python模拟登录淘宝,详细讲解如何使用requests库登录淘宝pc端。
- 第二篇:淘宝自动登录2.0,新增Cookies序列化,教大家如何将cookies保存起来。
- 第三篇:Python爬取淘宝商品避孕套,教大家如何爬取淘宝pc端商品信息。
今天,我们来看看淘宝系列的第四篇
我们在上一篇的时候已经将淘宝数据爬取下来了,但是并没有做数据分析。所以今天这篇文章就是教大家如何去分析数据,得出一些有用的结论!
Python语言相比其他语言的优势在哪里?猪哥认为是数据分析和人工智能这两大块,而且这两个方向需求会慢慢增大,所以那些想学习Python却不知道要朝着哪个目标学习的同学可以考虑往这两个方向发展!
一、分析目标
数据分析之前我们需要清楚的知道自己想要分析什么东西,也就是先搞清楚我们的目标。在公司可能是公司财报、用户增量变化、产品受欢迎程度、一些报表等等。
那我们今天的目标有哪些呢?我们来看看:
- 分析避孕套标题高频关键字
- 分析避孕套标题高频关键字 与 商品数量关系
- 分析避孕套标题高频关键字 与 平均销量关系
- 分析避孕套标题高频关键字 与 平均售价关系
- 分析避孕套商品价格区间分布关系
- 分析避孕套商品销量区间分布关系
- 分析避孕套商品价格区间 与 平均销量关系
- 分析避孕套商家数量全国分布关系
- 分析避孕套商家全国平均销量关系
注意: 以上数据分析全部基于上次爬取的2500款淘宝商品(默认排序),并不代表淘宝所有避孕套商品!
二、分析实现
有了明确的目标之后,我们就要开始技术选型。
首先数据处理的库这个很好确定,基本就是numpy和pandas这两个必备的库,所以大家首先确保已经安装了这两个库。
然后数据可视化库呢?这么多可视化库该怎么选?如果你不知道怎么选,那猪哥给你推荐:pyecharts 这个由中国人开发的可视化库,想要什么类型的图在下面文档里面找就行。
中文文档:https://pyecharts.org/#/zh-cn/intro
源码地址:https://github.com/pyecharts/pyecharts
最后技术选型完毕,我们就可以开始正式的敲代码分析了。(分析的标题将和上面的分析目标一一对应)
0.数据清洗
在我们数据分析之前,我们需要对数据进行清洗。因为从淘宝爬取下来的数据并不是标准的数据,比如:商品销量,爬取下来的数据是:2.5万+人付款,我们需要将它转为:25000(整型),这样才方面后面的处理!
我们先来看看从淘宝爬取的原始数据,看看那些数据需要清洗
根据使用库的经验猪哥认为有两列数据需要清洗:1、销量转成整型 2、地区转成只包含省份,具体如何清洗我们直接看代码吧!
大家可以看到最后猪哥又从新生成了一个excel文件,目的就是不去污染原始数据,因为原始数据非常重要,所以我们在以后的数据处理中要尽量保存好原始数据,多备份几个都不多余!
1.分析避孕套标题高频关键字
数据清洗完毕之后,我们就可以开始分析了。
分析标题高频关键字这都是老生常谈的一个流程,也就是使用jieba分词,然后统计词频,最后生成一个词云图,我相信经常看猪哥公众号的同学看都看腻了吧,这种小功能闭着眼睛都会了。
十几行代码就搞定了,我们来看看效果图吧
分析结论:
- 从整体看商家取名偏爱情趣二字
- 从材质看尿酸的最多
- 从功能看颗粒、螺纹的较多
ps:别问猪哥最中意哪个词,问就是延时。
2.分析避孕套标题高频关键字 与 商品数量关系
上面我们只看到大概哪些功能受欢迎,如果需要看具体的数据怎么办呢?
我们就来统计一下包含这些高频关键词的商品数据数量吧,代码讲解在图片下方,下同!
我们取最高频的20个关键字,然后遍历所有数据的标题中是否包含其中关键字,如果包含则该关键字的value就+1。来看看生成的柱状图效果吧!
分析结论:
- 包含情趣二字的商品有1150款,占到总数(2500款+)的46%。
- 前三甲是:情趣、尿酸、颗粒
ps:猪哥有个疑问想请教各位老司机:这个 免洗 是咋玩的?
3.分析避孕套标题高频关键字 与 平均销量关系
这个分析有意思了,就相当于用户更喜欢哪种功能或者材质的套套。
高频关键字与平均销量分析数据的实现方法是,同样遍历所有数据的标题,如果包含某个关键字,则把该项数据的销量放在关键字的value中(一个list),统计完后再对每个关键字的value进行求平均值,最后再根据平均销量排序。来看看效果吧!
分析结论:
- 螺纹功能平均销量最高,大家的最爱
- 功能平均销量前三分别是:螺纹、颗粒、狼牙
- 小号竟然上榜,哈哈
ps:有很多同学问:为什么不是超薄?超薄自己是爽了,可女朋友呢?
4.分析避孕套标题高频关键字 与 平均售价关系
分析完大家喜欢的功能,再来分析下这些功能的价格如何?哪些功能的避孕套比较贵呢?
高频关键字 与 平均售价关系分析原理与上面是相似的,使用的同一个方法,只不过是将原来的销量换成价格,来看看效果图吧!
分析结果:
- 可以看到前排几个基本都是关于材质的
- 凝胶、透明质、免洗这三项均价最贵,超过100大洋
ps:类似凝胶、透明质、免洗的哪位老司机用过,和一般的有啥区别?
5.分析避孕套商品价格区间分布关系
商品的标题和功能差不多分析完了,我们来分析下价格吧!
猪哥人为的对价格进行了划分,一共分为:'0-20', '21-40', '41-60', '61-80', '81-100', '101-120', '121-150', '151-200', '200以上'这9个区间,然后对数据切割、统计、排序,最后分别生成柱状图和饼图。
分析结论:
- 价格区间在21-40的商品最多为778款,大约占比31%。
- 价格在一百以内与超过一百的商品比大概为7:1
ps:没想到还有这么多超过100块的,我想问下200块价格的套套是啥感觉?
6.分析避孕套商品销量区间分布关系
分析完价格当然是分析销量区间了
销量区间分布分析实现原理:认为为销量分区,大概分为:'一千以内', '一千到五千', '五千到一万', '一万到五万', '五万到十万', '十万以上',这六个区间,然后同上方法进行统计、排序最后可视化。
分析结论:
- 销量在1000以内的最多,大概占比90%
- 销量过万的一共也才10款,说明爆款真的很少
- 有一款套套销量竟然超过10万
ps:想知道那款超过10万销量的避孕套商品信息吗?关注猪哥微信公众号「裸睡的猪」回复:爆款套套,即可查看!
7.分析避孕套商品价格区间 与 平均销量关系
假如你是一个避孕套卖家,新推出一款避孕套,你想知道价格定为多少销量才会比较高呢?
这时候我们就可以通过分析价格与商品的销量关系,用实际的数据来定价,这也正是数据分析的价值之一。
商品价格区间 与 平均销量关系分析实现原理是:使用pandas自动分区将价格划分为12个分区,然后对销量数据分组、求平均值,来看看可视化之后的效果。
分析结论:
- 定价在31.9-39这个区间平均销量最高,为893
- 定价在10元以内的销量竟然高居第二
ps:谁用过10以内一盒的套套,出来走走
8.分析避孕套商家数量全国分布关系
标题、价格、销量都分析过了,最后我们还分析下商家位置的数据。
分析的目标是统计全国各省避孕套商家数量,然后做成热力图和柱状图。
统计商家数量还是比较简单,因为我们之前在数据清洗的时候已经只保留了省份数据,所以直接value_counts()就可以的到想要的数据,看看效果如何!
分析结论:
- 避孕套商家前三甲:广东、上海、浙江
ps:贵州四周都有卖套套的,为何就它没有?难道和地理有关?
9.分析避孕套商家全国平均销量关系
分析完商家数后,我们来看看各省的平均销量吧。
商家全国平均销量关系分析实现原理:我们新创建一个透视表并对销量求平均值,然后再排序,最后生成热力图和柱状图。
分析结论:
- 出乎意料的是山西39个商家平均销量竟然是第一为1535。
ps:为何山西平均销量是第一?原因是啥真想不通
三、总结
通过上面的数据分析,我们得到了一些有趣的结论:
- 用户偏爱螺纹、颗粒、狼牙等功能
- 凝胶、透明质、免洗这三项均价最贵,超过100大洋
- 价格区间在21-40的商品最多为778款,大约占比31%
- 销量在1000以内的最多,大概占比90%
- 定价在31.9-39这个区间平均销量最高,为893
- 避孕套商家数量前三甲:广东、上海、浙江
- 山西省平均销量最高为山西
通过上述分析结果,如果猪哥作为一个避孕套商家,想要推出一款产品,设置标题带螺纹、颗粒、狼牙,价格设置在31.9-39元,这样可能会更畅销一些。
数据分析作为一把利刃,能让你看见别人看不见的事物,如果使用得当完全可以作为你创业的一个重要支点!
最后猪哥再送你一句忠告:想学数据分析,一定要学好pandas!!!
获取源码:关注微信公众号「裸睡的猪」回复:分析套套 即可获取!
用Python分析2000款避孕套,得出这些有趣的结论的更多相关文章
- 用Python分析淘宝2000款避孕套,得出这些有趣的结论
数据分析之前我们需要清楚的知道自己想要分析什么东西,也就是先搞清楚我们的目标.在公司可能是公司财报.用户增量变化.产品受欢迎程度.一些报表等等. 那我们今天的目标有哪些呢?我们来看看: ! 分析避孕套 ...
- 五月天的线上演唱会你看了吗?用Python分析网友对这场线上演唱会的看法
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:CDA数据分析师 豆瓣9.4分!这场线上演唱会到底多好看? 首先让我 ...
- 用Python分析国庆旅游景点,告诉你哪些地方好玩、便宜、人又少
注:本人参考“裸睡的猪”公众号同名文章,学习使用. 一.目标 使用Python分析出国庆哪些旅游景点:好玩.便宜.人还少的地方,不然拍照都要抢着拍! 二.获取数据 爬取出行网站的旅游景点售票数据,反映 ...
- python 分析慢查询日志生成报告
python分析Mysql慢查询.通过Python调用开源分析工具pt-query-digest生成json结果,Python脚本解析json生成html报告. #!/usr/bin/env pyth ...
- Python分析盘点2019全球流行音乐:是哪些歌曲榜单占领了我们?
写在前面:圣诞刚过,弥留者节日气息的大家是否还在继续学习呐~在匆忙之际也不忘给自己找几首好听的歌曲放松一下,缠绕着音乐一起来看看关于2019年流行音乐趋势是如何用Python分析的吧! 昨天下午没事儿 ...
- Python分析数据难吗?某科技大学教授说,很难但有方法就简单
用python分析数据难吗?某科技大学的教授这样说,很难,但要讲方法,主要是因为并不是掌握了基础,就能用python来做数据分析的. 所谓python的基础,也就是刚入门的python学习者,学习的基 ...
- Python分析离散心率信号(下)
Python分析离散心率信号(下) 如何使用动态阈值,信号过滤和离群值检测来改善峰值检测. 一些理论和背景 到目前为止,一直在研究如何分析心率信号并从中提取最广泛使用的时域和频域度量.但是,使用的信号 ...
- Python分析离散心率信号(中)
Python分析离散心率信号(中) 一些理论和背景 心率信号不仅包含有关心脏的信息,还包含有关呼吸,短期血压调节,体温调节和荷尔蒙血压调节(长期)的信息.也(尽管不总是始终如一)与精神努力相关联,这并 ...
- Python分析离散心率信号(上)
Python分析离散心率信号(上) 一些理论和背景 心率包含许多有关信息.如果拥有心率传感器和一些数据,那么当然可以购买分析包或尝试一些可用的开源产品,但是并非所有产品都可以满足需求.也是这种情况.那 ...
随机推荐
- 阿里云短信服务(JAVA)
一,前言 短信验证码想必大家都不陌生,在很多网站,APP中都有使用到.比如登录,注册,身份校验等场景.不过通常情况下,短信服务都是外包给第三方公司的,接下来向大家分享如何使用阿里的短信服务. 二, ...
- Mybatis案例超详解(上)
Mybatis案例超详解(上) 前言: 本来是想像之前一样继续跟新Mybatis,但由于种种原因,迟迟没有更新,快开学了,学了一个暑假,博客也更新了不少,我觉得我得缓缓,先整合一些案例练练,等我再成熟 ...
- 阿里P8架构师浅析——MySQL的高并发优化
一.数据库结构的设计 1.数据行的长度不要超过8020字节,如果超过这个长度的话在物理页中这条数据会占用两行从而造成存储碎片,降低查询效率. 2.能够用数字类型的字段尽量选择数字类型而不用字符串类型的 ...
- 结合suctf-upload labs-RougeMysql再学习
这篇主要记录一下这道题目的预期解法 做这道题首先要在自己的vps搭建一个rouge mysql,里面要填写需要读取客户端的文件名,即我们上传的phar文件路径 先搭一个rouge mysql测试看看: ...
- import 和from…import
import 和from-import 一.import模块名 import time print(time.time()) import首次导入模块发生了3件事: 使用import time导入的时 ...
- Mybatis 中的<![CDATA[ ]]>浅析
在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]&g ...
- Spring数据库连接
1.C3P0数据库连接 2.DBCP数据库连接 3.Druid数据库连接 C3P0数据库连接: 1.先到(http://www.mvnrepository.com/)Maven网址找到C3P0的数据源 ...
- C#开发BIMFACE系列5 服务端API之文件直传
BIMFACE使用了分布式对象存储来存储用户上传的模型/图纸文件.如使用普通的文件上传接口, 文件流会通过BIMFACE的服务器,再流向最终的分布式存储系统,整个上传过程会受BIMFACE服务器的带宽 ...
- Delphi - Windows自动计划任务与ParamStr详解
Windows自动计划任务与ParamStr详解 ParamStr函数: ParamStr(1),..ParamStr(N) ParamStr(1)代表程序入口的第一个参数,同理,ParamStr(N ...
- 记一次vue使用innerHTML更新dom出现的样式失效问题
场景说明:我在实现对html拼接后重新渲染到页面的功能遇到了一点问题,当然实际的业务逻辑并没有这么简单,所以只提出这个问题,而不讨论如何修正: 具体情况:使用refs获取到dom,然后使用innerH ...