一次让人脸红心跳的python数据分析

前些天,看到某公司对数据分析师的招聘要求有一条:

分析客户人群的购买习惯,并通过客户购买行为做出相关数据分析。

好项目,正好让大家练手Python,于是决定研究亚马逊上Top100的细分品类——女式内衣!!!的销售情况。这个话题,遐想空间很大,各位老司机坐稳咯!

一次让人脸红心跳的python数据分析

分析分为三步:数据采集、数据清理、可视化分析第一步,采集数据。没有数据怎么办,用万能的Python爬嘛。爬取商品排名和详情页链接,需要的字段为:排名、商品名、详情页链接。爬取商品详情,需要的信息为:

  • 店家:也就是竞争对手。分析其爆品情况,保留店家链接,后续可针对性挖掘分析;
  • 价格:分析爆品价格区间,对商品定价有帮助;
  • 上架时间:什么时候上的?爆了多久;
  • 星级、评论数、评论标签、所有评论链接:爬取评论内容,来分析爆品的优劣势;
  • 尺寸、颜色:嗯哼?也是非常有价值的参考数据;
  • 图片链接:难道你不想看看商品长啥样吗?

第三步,数据转化为可视化图表,并做分析。是不是迫不及待想要看过程了,来吧~

如何爬取内衣数据

Python爬数据很简单,我个人总结大致就 3点:

  • 请求数据
  • 进行数据处理
  • 写数据

第一点 请求的数据会有几种可能:1、很简单的html页面,就直接requests就可以请求成功;2、js渲染的页面 ,这种页面超多,requests请求一堆js数据;3、需要登录才能获取,至今登录我都是用的cookie 请求登录,但应该有更好的办法;4、json数据;第二点 数据处理会有几种可能:1、请求的数据是简单的html结构页面——直接BS4解析就好了2、请求的数据是json——导入json模块进行解析3、请求的数据是简单的js渲染的html页面遇到这种页面通过抓包或者简单的在网站上审查请求,然后找的你想要的那部分数据,如果是js渲染的html,其实就是js拼写的html,只要把其他无用的数据匹配掉用正则找到剩下想要的html文本就好了 。然后BS4解析。第三点 写数据open方法进行文件打开 里面的参数进行文件格式设置,读写文件、编码格式操作

with open("XXX.xxx","a",encoding="utf-8") as f :
 f.write('''写入的数据''')

文件格式我用过的就是txt、csv 、xml 大部分文本格式都支持的。a–是创建文件 每次写都是重新创建w–是追加a–是读数据encoding=”utf-8″这句话 不加encoding= 在windows系统下会报编码错误,linux不会。然后就是数据量太大,写入到数据库数据库就用sqlite,记得引入模块 import sqlite3,就是创建数据表。好了,不啰嗦,开始爬数据。爬取过程分为三步,完整代码见文末,不用谢1、爬取商品排名和详情页链接

一次让人脸红心跳的python数据分析

需要爬取的具体字段:排名(Rank),商品名(item_name),商品详情页链接(item_link)、商品图片链接(img_src)。2、在商品详情页爬取更多商品信息

一次让人脸红心跳的python数据分析

店家名、店家链接、商品名、价格

一次让人脸红心跳的python数据分析

星级、评论标签

核心:

  • 构建函数来获取单个商品的详细信息;
  • 利用for循环,遍历商品详情页链接列表,来获取每个商品的详细信息

3、爬取评论

一次让人脸红心跳的python数据分析

评论内容,星级

核心:

  • 从上一步的csv文件中,读取Rank , item_name , reviews , reviews_link字段
  • 构建函数读取每个商品的所有评论
  • 利用for循环,获取所有商品的所有评论
  • 存储到数据库和csv文件中

4、爬取size和color数据和第三步基本一样,代码基本一样,主要在于要确认每页评论的size&color个数。

数据清洗和预处理

1、读取、清洗数据从csv文件读取100个商品的数据,筛选出所需要的字段,进行数据清洗。这里注意,部分读取的数据,看似是数值,实际是字符,因此需要进行类型转换(如price拆分后,还需要转为float型)需要参与数值计算的NaN,使用平均值进行替换。

一次让人脸红心跳的python数据分析

2、以商家维度处理数据获取所需的数据:商家的星级、评论数总和、评论数均值、最低价均值、最高价均值、价格均值、商品数量、占比。针对星级、评论数均值、价格均值、商品数量做标准化处理,并计算加权分。

一次让人脸红心跳的python数据分析

分析:歪果情趣内衣哪家强

1、不同商家的星级排名

一次让人脸红心跳的python数据分析

  • 平均星级达4.15分,高于平均分的商家超过一半(17/32)
  • Top1的LALAVAVA高达4.9分,紧随其后也有5家达到4.5分。
  • 倒数第一N-pearI只有3.2分

让我看看LALAVAVA长什么样。亚马逊上的商品,看上去就是普通泳衣,米国人还是很保守的嘛~

一次让人脸红心跳的python数据分析

但评分高真的就说明产品好吗?不如来看看评论数吧。②不同商家的平均评论数排名

一次让人脸红心跳的python数据分析

  • 首先平均评论数只有193条,而且高于平均线的只有不到三成(12/32),想想淘宝动辄上万,我们的人口优势让米国人羡慕呀;
  • 再来看星级Top1的LALAVAVA,评论数少得可怜,那么对其商品真实质量就要存疑了;
  • 而星级倒数的N-pear I,同样评论数很少,那大概率其商品其实不咋地;
  • 反观评论数Top1的Garmol,其星级评价4.4,口碑佳评论也多,看来是不错的商品;
  • 紧随其后的几家,其星级分数就低于平均分了

那么,亚马逊的星级评价难道就只受评论数的几颗星比例影响吗?我查阅了网上的一些资料,发现亚马逊评价星级评定的三个重要因素:评论距离现在的时间,评论被买家投票采纳数,评论是否有verified purchase标志(意指真实买家)。此外,评论的字符数,被点击次数等因素也可能会对评论星级有影响。看来,亚马逊对评论的监控和管理是非常严格而复杂的!当然,最重要的还是看看评论第一名的Garmol长什么样:

一次让人脸红心跳的python数据分析

比上边的泳衣更点题了,大家说好才是真的好,very sexy!2、不同商家的价格区间排名(按均价)

一次让人脸红心跳的python数据分析

  • 从图上来看,明显ELOVER锁定的是高端市场,定价区间在49刀左右;相反,Goddessvan定价仅0.39刀,还只有一款,猜测可能是亏本冲量,提高商家曝光,抢夺低端市场
  • 从均价来看,基本分布在10-20刀间,说明这是情趣内衣市场的主要价格区间;但20-40刀区间居然没有任何商家,可以在这一块深入研究,看能不能找到证据说明该区间是蓝海,有更大的市场潜力
  • 而从每个商家的价格区间来看,大多数都是采取多颜色或款式的策略,一方面为用户提供更多选择,另一方面也体现了商家的上新能力;而仅有少数几家采取了单一爆款的策略

最奢华的ELOVER看上去果然比较女神,缩略图都比别家更用心。

一次让人脸红心跳的python数据分析

那么,到底哪个商家的策略更靠谱,市场份额更大呢?3、商家的商品数量饼图

一次让人脸红心跳的python数据分析

  • 在Top100的商品占比中,Avidlove以28%的巨大优势称霸
  • 而其他商家基本都是个位数的占比,没有很明显的优劣势

Avidlove的内衣是酷酷风的,我喜欢。

一次让人脸红心跳的python数据分析

单一方面毕竟还是很难衡量哪家商家更优秀,不如综合多个指标来分析吧~4、不同商家的加权分排名

一次让人脸红心跳的python数据分析

将星级、平均评论数、商品均价、商品数量进行标准化处理后,因为不好拍定加权的比例,便将4项的归一化结果x10后直接累加得到总分,并制作成条形堆积图。而每个商家的4项指标的占比,则侧面反映其自身的优劣势。

  • Avidlove,刚刚的酷酷风内衣,在其他三项中规中矩的情况下,以商品数量优势夺得综合分第一,有种农村包围城市的感觉
  • Garmol,主要依靠口碑(星级、平均评论数)的优势,夺得了第二名
  • ELOVER,主要依靠精准切分高端市场,夺得了第三名
  • N-pearI,没有任何优势,不出意料的光荣垫底

口碑最差的N-pearI,能搜到的商品也最少,不过图很劲爆,emm……然而不是我的菜

一次让人脸红心跳的python数据分析

粗略来看的话,想要排名靠前,口碑一定不能太差,至少要保持在平均水平及以上!5、不同商家的星级/价格散点图用Python做了张散点图,x轴为商家的商品均价,y轴为商家的星级,点大小为商品数量,商品数量越大,点越大,点颜色为评论均值,评论均值越大,颜色越深红。

一次让人脸红心跳的python数据分析

利用价格均值和星级均值,将图切分为四个象限:①左上象限:实惠好评的商家②右上象限:有点贵,但一分钱一分货的商家③右下象限:贵,但质量不咋地的商家④左下象限:便宜没好货的商家所以借助这张散点图,挑商家买东西就容易多啦:

  • 追求性价比,可选择Avidlove,而且商品多,任君挑选 ;
  • 追求高端,可选择ELOVER,它贵有它的道理 ;
  • 追求大众,可选择Garmol,评论数最多,而且好评居多 。

顾客可以根据自己的喜好挑选合适的商家,那么作为商家如何改进自己呢?6、词频分析

一次让人脸红心跳的python数据分析

前面在爬取的过程中,同样爬取了评论标签,通过对此进行词频分析,可以发现顾客最关心的依次是:① 是否合身:size、fit等相关字眼多次出现且排位靠前② 质量:good quality、well made;soft and comfortable、fabric是对材质的肯定③ 款式:cute、sexy、like the picture你懂的④ 价格:cheaply made勉强算价格吧,但更多是对商品质量的怀疑⑤ 口碑:highly recommend,评论的还是非常有参考价值的评论标签的数量较少,进一步对2.4w条评论进行词频分析,并制作成词云:

一次让人脸红心跳的python数据分析

快夸我底图选得好!最直观的,仍然是跟“是否合身”以及质量或款式有关。那么我们就从顾客购买商品的Size&Color继续分析

这里,Size&Color的词频数据存在几点问题:1、数据量较少,仅有约6000条2、Size&Color无法较好的区分开,因此一起分析3、商家的命名规则不同,比如同样是黑色款,有个商家会命名black,而有的可能是style1(所以一些奇怪的数字编号其实是商家的款式编号)4、有些奇怪的字眼如trim可能是爬虫时爬错了或者导出csv时的格式错乱

一次让人脸红心跳的python数据分析

可以明显看出:Size方面:large、medium、small肯定均有涵盖,但另外还有xlarge、xxlarge、xxxlarge,亚马逊主要是欧美顾客,可能体型相对较大,所以商家应该多研发以及备货针对体型较大的顾客的商品。Color方面:非常直观:Black > red > blue > green > white > purple….所以黑色、红色永远不会错;绿色是出乎我意料的,商家也可以大胆尝试。Style方面:词频中出现trim、lace字眼,蕾丝最高!!!

最后

在分析了Top100的商品信息和2.4w条评论后,作为一篇正经的python数据分析研究,我们来总结一下亚马逊情趣内衣产品和销售策略:1、一定要注意的竞品Garmol、ELOVER、Avidlove分别在口碑、定价、产品数量三个方向有其核心优势,是需要重点研究的竞争对手。2、口碑很重要

  • Review和星级是影响口碑的重要因素,需要深入研究其算法机制并制定针对性的营销策略
  • Review和星级有基础要求
  • 平均星级达4.15分,高于平均分的商家超过一半
  • 平均评论数只有193条,高于平均线的商家约三成
  • Review相对淘宝评论较少,亚马逊的算法复杂且惩罚力度大,因此Review重精胜于重多

3、定价策略

  • 主流市场竞争激烈,价格多集中在10-20刀间
  • 高端市场有切入机会,目前仅ELOVER一家,价格在40-55刀间
  • 低端市场价值不大,利润空间小,为了提高曝光或铺量可考虑,但不利于以后冲击中高端市场
  • 中高端市场机会巨大,20-40刀区间暂无其他商家,有巨大的市场潜力

4、产品策略

  • 应结合目标市场和定价,提高研发和上新能力,先多产品试错,再尝试单一爆款巩固市场
  • 内衣尺寸:合身最重要,需贴合国外顾客的体型,一般large及以上。颜色上:保守可多使用黑色、红色,同时可大胆尝试绿色。款式上:多采用蕾丝装饰
  • 质量和品控是底线

5、拓展&思考:

  • 亚马逊Best Sellers是每小时更新一次,理论上可以每一小时爬一次,看商品的排名变化,是否有新品等 ,可以尝试自动化爬虫;
  • 针对上一点,但商品的评论内容并不是经常更新的,如何去重避免重复爬取?(类似于断点续传功能);
  • 此次也有爬取商品图片的链接,可全部下载;在积累一定的图片素材以后,就可以一定程度上看出颜色、甚至是款式的趋势。

最后,一场脸红又心跳的数据分析就到这里,Python的学习也告一段落了。要是学到点啥,看到点啥就点个关注和好看吧~作者:大鹏教你玩数据

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(4)
Afenxi朋友们的头像Afenxi朋友们编辑
上一篇 2019-07-25 15:17
下一篇 2019-07-29 18:49

相关文章

关注我们
关注我们
分享本页
返回顶部