大数跨境
0
0

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

一次让人脸红心跳的python数据分析 数据分析不是个事儿
2019-04-09
0
导读:看了流鼻血

结束了前面枯燥的Python学习,大家都还好么?

反正,整理这6篇文稿,我是头秃一地。

为了慰问努力学习的你们,今天来点不一样的。


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

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

好项目,正好让大家练手Python,于是决定研究亚马逊上Top100的细分品类——女式内衣!!!的销售情况。

这个话题,遐想空间很大,各位老司机坐稳咯!



分析分为三步:数据采集、数据清理、可视化分析

第一步,采集数据。没有数据怎么办,用万能的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、爬取商品排名和详情页链接


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


2、在商品详情页爬取更多商品信息


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


星级、评论标签


核心:

  • 构建函数来获取单个商品的详细信息;

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


3、爬取评论

评论内容,星级

核心:

  • 从上一步的csv文件中,读取Rank , item_name , reviews , reviews_link字段

  • 构建函数读取每个商品的所有评论

  • 利用for循环,获取所有商品的所有评论

  • 存储到数据库和csv文件中


4、爬取size和color数据

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



数据清洗和预处理




1、读取、清洗数据

从csv文件读取100个商品的数据,筛选出所需要的字段,进行数据清洗。

这里注意,部分读取的数据,看似是数值,实际是字符,因此需要进行类型转换(如price拆分后,还需要转为float型)

需要参与数值计算的NaN,使用平均值进行替换。


2、以商家维度处理数据

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


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




1、不同商家的星级排名

  • 平均星级达4.15分,高于平均分的商家超过一半(17/32

  • Top1LALAVAVA高达4.9分,紧随其后也有5家达到4.5分。

  • 倒数第一N-pearI只有3.2


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


但评分高真的就说明产品好吗?不如来看看评论数吧。


②不同商家的平均评论数排名

  • 首先平均评论数只有193条,而且高于平均线的只有不到三成(12/32),想想淘宝动辄上万,我们的人口优势让米国人羡慕呀;

  • 再来看星级Top1的LALAVAVA,评论数少得可怜,那么对其商品真实质量就要存疑了;

  • 而星级倒数的N-pear I,同样评论数很少,那大概率其商品其实不咋地;

  • 反观评论数Top1的Garmol,其星级评价4.4,口碑佳评论也多,看来是不错的商品;

  • 紧随其后的几家,其星级分数就低于平均分了


那么,亚马逊的星级评价难道就只受评论数的几颗星比例影响吗?我查阅了网上的一些资料,发现亚马逊评价星级评定的三个重要因素:评论距离现在的时间,评论被买家投票采纳数,评论是否有verified purchase标志(意指真实买家)。此外,评论的字符数,被点击次数等因素也可能会对评论星级有影响。

看来,亚马逊对评论的监控和管理是非常严格而复杂的!当然,最重要的还是看看评论第一名的Garmol长什么样:


比上边的泳衣更点题了,大家说好才是真的好,very sexy!


3、不同商家的价格区间排名(按均价)

  • 从图上来看,明显ELOVER锁定的是高端市场,定价区间在49刀左右;相反,Goddessvan定价仅0.39刀,还只有一款,猜测可能是亏本冲量,提高商家曝光,抢夺低端市场

  • 从均价来看,基本分布在10-20刀间,说明这是情趣内衣市场的主要价格区间;但20-40刀区间居然没有任何商家,可以在这一块深入研究,看能不能找到证据说明该区间是蓝海,有更大的市场潜力

  • 而从每个商家的价格区间来看,大多数都是采取多颜色或款式的策略,一方面为用户提供更多选择,另一方面也体现了商家的上新能力;而仅有少数几家采取了单一爆款的策略


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

那么,到底哪个商家的策略更靠谱,市场份额更大呢?


4、商家的商品数量饼图


  • 在Top100的商品占比中,Avidlove以28%的巨大优势称霸

  • 而其他商家基本都是个位数的占比,没有很明显的优劣势


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


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


5、不同商家的加权分排名

将星级、平均评论数、商品均价、商品数量进行标准化处理后,因为不好拍定加权的比例,便将4项的归一化结果x10后直接累加得到总分,并制作成条形堆积图。

而每个商家的4项指标的占比,则侧面反映其自身的优劣势。

  • Avidlove,刚刚的酷酷风内衣,在其他三项中规中矩的情况下,以商品数量优势夺得综合分第一,有种农村包围城市的感觉

  • Garmol,主要依靠口碑(星级、平均评论数)的优势,夺得了第二名

  • ELOVER,主要依靠精准切分高端市场,夺得了第三名

  • N-pearI,没有任何优势,不出意料的光荣垫底

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


粗略来看的话,想要排名靠前,口碑一定不能太差,至少要保持在平均水平及以上!


6、不同商家的星级/价格散点图

用Python做了张散点图,x轴为商家的商品均价,y轴为商家的星级,点大小为商品数量,商品数量越大,点越大,点颜色为评论均值,评论均值越大,颜色越深红。

利用价格均值和星级均值,将图切分为四个象限:

①左上象限:实惠好评的商家

②右上象限:有点贵,但一分钱一分货的商家

③右下象限:贵,但质量不咋地的商家

④左下象限:便宜没好货的商家

所以借助这张散点图,挑商家买东西就容易多啦:

  • 追求性价比,可选择Avidlove,而且商品多,任君挑选 ;

  • 追求高端,可选择ELOVER,它贵有它的道理 ;

  • 追求大众,可选择Garmol,评论数最多,而且好评居多 。


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


7、词频分析

前面在爬取的过程中,同样爬取了评论标签,通过对此进行词频分析,可以发现顾客最关心的依次是:

① 是否合身:size、fit等相关字眼多次出现且排位靠前

② 质量:good quality、well made;soft and comfortable、fabric是对材质的肯定

③ 款式:cute、sexy、like the picture你懂的

④ 价格:cheaply made勉强算价格吧,但更多是对商品质量的怀疑

⑤ 口碑:highly recommend,评论的还是非常有参考价值的

评论标签的数量较少,进一步对2.4w条评论进行词频分析,并制作成词云:


快夸我底图选得好!


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

这里,Size&Color的词频数据存在几点问题:

1、数据量较少,仅有约6000条

2、Size&Color无法较好的区分开,因此一起分析

3、商家的命名规则不同,比如同样是黑色款,有个商家会命名black,而有的可能是style1(所以一些奇怪的数字编号其实是商家的款式编号)

4、有些奇怪的字眼如trim可能是爬虫时爬错了或者导出csv时的格式错乱

可以明显看出:

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的学习也告一段落了。要是学到点啥,看到点啥就点个关注和好看吧~

代码和数据回复【内衣】获得!

下一篇开始,技术放一边,开始讲业务和指标,真正的秘籍干货!







10周入门数据分析·系列


学习计划 | 10周入门数据分析

第一周(思维篇1):如何炼就数据分析的思维?

第一周(思维篇2)数据分析惯用的5种思维方法

第二周(Excel进阶):数据分析必掌握的43个Excel函数

第二周(Excel分析):如何用Excel做一次数据分析

第三周(数据库SQL):写给新人的数据库入门指南

第三周(SQL语句):零基础快速学习SQL,2天足矣

第四周(统计学):数据分析必掌握的统计学知识

第四周(统计学):不可不知的描述性统计

第四周(统计学):概率分布,先懂这6个

第四周(统计学):抽样之前,先假设检验

第五周(数据分析软件应用):数据分析工具怎么选?10大谏言

第五周(数据分析软件应用):这可能是今年最值得推荐的数据分析工具

第六周(数据可视化):10分钟做一个高端数据可视化,看完你也会!

第六周(数据可视化):掌握这22个布局和配色技巧,90%的人都能做出酷炫可视化!

第七周(分析模型):分析师需要掌握的25个商业模型(一)

第七周(分析模型):分析师需要掌握的25个商业模型(二)

第七周(分析模型):手把手教你搭建RFM客户价值分析模型

第八周(Python):Python数据分析(一)分析环境&数据结构

第八周(Python):Python数据分析(二)函数基础

第八周(Python):Python数据分析(三)NumPy

第八周(Python):Python数据分析(四)Pandas

第八周(Python):Python数据分析(五)Matplotlib做可视化


最后,觉得文章有价值,右下角点“好看”并转发朋友圈,你们的支持是我更文的动力!




【声明】内容源于网络
0
0
数据分析不是个事儿
分享数据人的干货!
内容 1307
粉丝 0
数据分析不是个事儿 分享数据人的干货!
总阅读215
粉丝0
内容1.3k