Python电商数据分析案例|如何分析竞争对手?
大家好,我是宝器!
导读: 本篇中将继续从微观市场方面,从产品结构、产品舆情及产品流量三个方面深入探讨拜耳产品的竞品分析。
👆点击关注|设为星标|干货速递👆
电商分析基础知识
电子商务和传统零售数据分析的区别
传统零售是利用二八法则生存,电商是靠长尾理论积累销售。 电商是大数据,传统零售是小数据。 传统零售是"物流",零售过程就是商品的流动。电子商务是"信息流",顾客通过搜索、比价、评论、分享产生信息,达到购买的目的。 传统零售注重体验感,购物有时候也是社交的一部分,现在的购物中心基本是吃喝玩乐一体化设计。电商注重服务和效率,虽然也有吃喝玩乐的产品,但却不能方便及时享受。 传统零售是做加法,电子商务是做乘法。传统零售通过一家店一家店的开发来扩充自己的影响力,电商则通过资金的投入迅速抢占市场。 成本结构不同,传统零售的主要成本是租房与人工成本,电商的主要成本是物流和营销成本。
电商数据分析需要的数据
电商需要的数据复杂,数据来源渠道也多样化,当然数据质量也是有好有坏的。
营销数据
包括营销费用、覆盖用户数、达到用户数、打开或点击用户数。流量数据
包括浏览量、访客数、登陆时间、在线时长等基础数据。会员数据
包括会员的姓名、出生日期、真实性别、网络性别、地址、手机号、微博号、微信号等基础数据。交易及服务数据
包括交易金额、交易数量、交易人数、交易商品、交易场所、交易时间。供应链服务等数据。行业数据
淘宝的数据魔方提供行业品牌的关键字搜索、店铺排名、销售、会员等数据查询。
产品结构分析
波士顿矩阵
波士顿矩阵又称市场增长率-相对市场份额矩阵、波士顿咨询集团法、四象限分析法、产品系列结构管理法等。
适用于一般产品,不适合引流产品。
明星产品:高市场占有率,高业务增长率 金牛产品:高市场占有率,低业务增长率 问题产品:低市场占有率,高业务增长率 瘦狗产品:低市场占有率,低业务增长率
波士顿矩阵的应用
(1)评价各项业务的前景。BCG是用市场增长率这一指标来表示发展前景的。这一步的数据可以从企业的经营分析系统中提取。
(2)评价各项业务的竞争地位。BCG是用“相对市场份额”这个指标来表示竞争力的。这一步需要做市场调查才能得到相对准确的数据。计算公式是把一单位的收益除以其最大竞争对手的收益。
(3)表明各项业务在BCG矩阵图上的位置。具体方法是以业务在二维坐标上的坐标点为圆心画一个圆圈,圆圈的大小来表示企业每项业务的销售额。
(4)确定纵坐标“市场增长率”的一个标准线,从而将“市场增长率”划分为高、低两个区域。
比较科学的方法有两种:
把该行业市场的平均增长率作为分界线 把多种产品的市场增长率(加权)平均值作为界分点
需要说明的是,高市场增长定义为销售额至少达到10%的年增长率(扣除通货膨胀因素后)。
(5)确定横坐标“相对市场份额”的一个标准线,从而将“相对市场份额”划分为高、低两个区域。
拜耳产品结构分析
首先获取拜耳全店商品交易数据,数据样例如下图所示。
baier_02 = pd.read_excel('./baier/电商案例数据/拜耳店铺数据/拜耳全店商品交易数据.xlsx')
baier_02.head()
以单个商品为聚合,分别对交易增长幅度求平均,支付转化指数求平局,交易金额求和,这些只需要一行代码就能搞定。
下一步将单个商品的交易金额除以全部商品的交易总金额,得到单个商品的交易金额占比。
baier_str = baier_02.groupby('商品').agg({'交易增长幅度':np.mean,
'支付转化指数':np.mean,
'交易金额':np.sum})
baier_str['交易金额占比'] = baier_str.交易金额/baier_str.交易金额.sum()*100
baier_str.head()
对上述表进行描述性统计,查看下是否有缺失值、异常值等"脏"数据或不合理的数据。从结果看,交易增长幅度最大值(红色框框)为1030,很明显是个异常值,我们将其删除,
baier_str.describe()
删除异常值
baier_str = baier_str[baier_str.交易增长幅度!=1030.00]
明星产品
高销售额占比,高销售增长率
它是指处于高增长率、高市场占有率象限内的产品群,这类产品可能成为企业的现金牛产品,需要加大投资以支持其迅速发展。
采用的发展战略是:积极扩大经济规模和市场机会,以长远利益为目标,提高市场占有率,加强竞争地位。发展战略以及明星产品的管理与组织最好采用事业部形式,由对生产技术和销售两方面都很内行的经营者负责。
明星产品=baier_str.where((baier_str.交易增长幅度>=baier_str.交易增长幅度.mean()
)&(baier_str.交易金额>=baier_str.交易金额.mean())).dropna()
明星产品
金牛产品
高销售额占比,低销售增长率
现金牛产品(cash cow),又称厚利产品。它是指处于低增长率、高市场占有率象限内的产品群,已进入成熟期。其财务特点是销售量大,产品利润率高、负债比率低,可以为企业提供资金,而且由于增长率低,也无需增大投资。因而成为企业回收资金,支持其它产品,尤其明星产品投资的后盾。
把设备投资和其它投资尽量压缩; 采用榨油式方法,争取在短时间内获取更多利润,为其它产品提供资金。
对于这一象限内的销售增长率仍有所增长的产品,应进一步进行市场细分,维持现存市场增长率或延缓其下降速度。
金牛产品 = baier_str.where((baier_str.交易增长幅度<=baier_str.交易增长幅度.mean()
)&(baier_str.交易金额>=baier_str.交易金额.mean())).dropna()
金牛产品
问题产品
低销售额占比,高销售增长率
问题产品(question marks)。它是处于高增长率、低市场占有率象限内的产品群。前者说明市场机会大,前景好,而后者则说明在市场营销上存在问题。
其财务特点是利润率较低,所需资金不足,负债比率高。例如在产品生命周期中处于引进期、因种种原因未能开拓市场局面的新产品即属此类问题的产品。
对问题产品应采取选择性投资战略。因此,对问题产品的改进与扶持方案一般均列入企业长期计划中。
问题产品=baier_str.where((baier_str.交易增长幅度>=baier_str.交易增长幅度.mean()
)&(baier_str.交易金额<=baier_str.交易金额.mean())).dropna()
问题产品
瘦狗产品
低销售额占比,低销售增长率
瘦狗产品(dogs),也称衰退类产品。它是处在低增长率、低市场占有率象限内的产品群。其财务特点是利润率低、处于保本或亏损状态,负债比率高,无法为企业带来收益。
对这类产品应采用撤退战略:
首先应减少批量,逐渐撤退,对那些销售增长率和市场占有率均极低的产品应立即淘汰。 其次是将剩余资源向其它产品转移。 第三是整顿产品系列,最好将瘦狗产品与其它事业部合并,统一管理。
瘦狗产品 = baier_str.where((baier_str.交易增长幅度<=baier_str.交易增长幅度.mean()
)&(baier_str.交易金额<=baier_str.交易金额.mean())).dropna()
瘦狗产品
从以上结果,可以得到如下几点信息。
拜耳低明显产品不明显,增长缓慢的一个原因 潜力款产品较多,要考虑是否应该投入更多的营销资源去保持增长幅度,使得其转化为明显产品或金牛产品 潜力款产品较多,要考虑是否应该投入营销资源去保持增长幅度,使得其转化为明显产品或金牛产品 瘦狗产品:产品容量、外观设计问题,或是产品标题问题
波斯顿矩阵可视化
为了方便大家查看,可视化代码如下,代码比较简单,一个循环绘制四个字图。
ax = plt.figure(figsize=(8,8))
a = [问题产品,明星产品,瘦狗产品,金牛产品]
b = ['问题产品','明星产品','瘦狗产品','金牛产品']
c = ['b','y','r','k']
for i in range(len(a)):
ax.add_subplot(2,2,i+1)
plt.scatter(a[i].交易金额,a[i].交易增长幅度,c = c[i])
plt.title(b[i])
if i==0:
plt.ylim(baier_str.交易增长幅度.mean()-1,baier_str.交易增长幅度.max()+5)
plt.xlim(baier_str.交易金额.min()-100000,baier_str.交易金额.mean()+10000)
elif i==1:
plt.ylim(baier_str.交易增长幅度.mean()-1,baier_str.交易增长幅度.max()+5)
plt.xlim(baier_str.交易金额.mean()-10000,baier_str.交易金额.max()+2000000)
elif i==2:
plt.ylim(baier_str.交易增长幅度.min()-0.01,baier_str.交易增长幅度.mean()+0.01)
plt.xlim(baier_str.交易金额.min()-100000,baier_str.交易金额.mean()+10000)
elif i==3:
plt.ylim(baier_str.交易增长幅度.min()-0.01,baier_str.交易增长幅度.mean()+0.01)
plt.xlim(baier_str.交易金额.mean()-10000,baier_str.交易金额.max()+2000000)
科凌产品结构分析
通过对竞争对手产品结构分析,尤其是对手大流量产品,可以找出下一步市场增长点,拓展业务,减少推广风险。
对自家产品有相对增长减缓对产品,防止其他结构点品牌对自家产品对冲击。
同样读取数据,对销售数据进行处理,处理逻辑跟拜耳产品处理逻辑一样。结果如下所示。
keling_02 = pd.read_excel('./baier/电商案例数据/竞争数据/商品交易数据/科凌虫控全店商品交易数据.xlsx')
keling_str = keling_02.groupby('商品').agg({'交易增长幅度':np.mean,
'支付转化指数':np.mean,
'交易金额':np.sum})
keling_str['交易金额占比'] = keling_str.交易金额/keling_str.交易金额.sum()*100
keling_str
同样的方法分别计算明星产品,金牛产品,问题产品和瘦狗产品。
明星产品=keling_str.where((keling_str.交易增长幅度>=keling_str.交易增长幅度.mean()
)&(keling_str.交易金额>=keling_str.交易金额.mean())).dropna()
金牛产品=keling_str.where((keling_str.交易增长幅度<keling_str.交易增长幅度.mean()
)&(keling_str.交易金额>=keling_str.交易金额.mean())).dropna()
由此可见:
竞争产品:灭蟑螂21966057元,已造成威胁 拜耳未涉及产品:灭鼠、除螨产品也已达到两百多万
问题产品=keling_str.where((keling_str.交易增长幅度>=keling_str.交易增长幅度.mean()
)&(keling_str.交易金额<keling_str.交易金额.mean())).dropna()
瘦狗产品=keling_str.where((keling_str.交易增长幅度<keling_str.交易增长幅度.mean()
)&(keling_str.交易金额<keling_str.交易金额.mean())).dropna()
波斯顿矩阵可视化
科凌产品结构分析:
金牛产品明显,灭蟑产品对销售额与拜耳主营业务差距不是非常大。 科凌产品多样化,特别是灭鼠和除螨,拜耳还没有涉及大两大业务现金牛产品属性也很明显。 除螨产品增长迅速,满足了二级市场的第三大产品需求。
安速产品结构分析
最后一个安速产品,处理逻辑一致,就不过多阐述。
ansu_02 = pd.read_excel('./baier/电商案例数据/竞争数据/商品交易数据/安速全店商品交易数据.xlsx')
ansu_02
ansu_str = ansu_02.groupby('商品').agg({'交易增长幅度':np.mean,
'支付转化指数':np.mean,
'交易金额':np.sum})
ansu_str['交易金额占比'] = ansu_str.交易金额/ansu_str.交易金额.sum()*100
计算波斯顿矩阵中各个产品分布值及可视化
明星产品=ansu_str.where((ansu_str.交易增长幅度>=ansu_str.交易增长幅度.mean()
)&(ansu_str.交易金额>=ansu_str.交易金额.mean())).dropna()
金牛产品=ansu_str.where((ansu_str.交易增长幅度<ansu_str.交易增长幅度.mean()
)&(ansu_str.交易金额>=ansu_str.交易金额.mean())).dropna()
问题产品=ansu_str.where((ansu_str.交易增长幅度>=ansu_str.交易增长幅度.mean()
)&(ansu_str.交易金额<ansu_str.交易金额.mean())).dropna()
瘦狗产品=ansu_str.where((ansu_str.交易增长幅度<ansu_str.交易增长幅度.mean()
)&(ansu_str.交易金额<ansu_str.交易金额.mean())).dropna()
安速产品分析部分结果如下:
现金牛产品多,覆盖广 主营业务与拜耳构成冲突 安速现金牛和潜力产品覆盖了二级市场,跳蚤产品支付热度明显
产品舆情分析
舆情分析就是根据特定问题的需要,对针对这个问题的舆情进行深层次的思维加工和分析研究,得到相关结论的过程。而本次案例舆情分析是透过用户对某商品的评论信息进行舆情分析。
评论是对内容互动的基本形式,参与评论的用户越多证明该内容能吸引用户互动的价值越大。当然,评论多并不一定意味着内容本身的质 量或价值度高,很多内容可能通过打擦边球甚至做有争议内容来增加用户的评论。
本次舆情分析,是对各个产品对评论内容通过一系列方法,包括通过语句分词,词频统计及绘制词云图等进行分析。
拜耳舆情分析
首先读取产品评论数据表,获取其评论字段数据。
baier_03 = pd.read_excel('./baier/电商案例数据/拜耳店铺数据/德国拜耳产品评论数据.xlsx')
baier_03.head()
baier_03 = baier_03.评论
baier_03
0 刚收到,家里厨房突然出现小强了,看了这个评价挺多挺好,销量也大,赶紧定了三盒,一定要管用啊一...
1 朋友推荐的说之前用的挺管用的。在放药的前几天就没怎么见蟑螂了,然后出去玩之前把家里角角落落全...
2 真心坑人啊!😂还没到24小时就凝固了!小强依然活跃🤑🤑🤑🤑
3 盆友推荐的,说特别好用,效果杠杠的,看双十一做活动,就买啦,效果应该不错吧,不过尸体都是家里...
4 我是买到假货吗?那么贵的蟑螂药居然还有,还是蟑螂已经百毒不侵了?
...
1395 此用户没有填写评论!
1396 有点贵,已经用了,期待效果
1397 物流挺快的客服也很贴心好评
1398 看起来不错,暂时没发现蟑螂
1399 买二送一,期待效果呀,这个是同事推荐并且指定的产品,希望好用以后就再来吧…&h...
Name: 评论, Length: 1400, dtype: object
删除没有价值的信息
很多时候,我们购买某些产品,但懒得去评论,此时系统到了一定的时间,会给你自动打上标签:'此用户没有填写评论!',这部分信息对于我们分析是没有用的,因此需要将其删除。
此用户没有填写评论!
baier_03 = baier_03[baier_03 != '此用户没有填写评论!']
baier_03
0 刚收到,家里厨房突然出现小强了,看了这个评价挺多挺好,销量也大,赶紧定了三盒,一定要管用啊一...
1 朋友推荐的说之前用的挺管用的。在放药的前几天就没怎么见蟑螂了,然后出去玩之前把家里角角落落全...
2 真心坑人啊!😂还没到24小时就凝固了!小强依然活跃🤑🤑🤑🤑
3 盆友推荐的,说特别好用,效果杠杠的,看双十一做活动,就买啦,效果应该不错吧,不过尸体都是家里...
4 我是买到假货吗?那么贵的蟑螂药居然还有,还是蟑螂已经百毒不侵了?
...
1394 试用一个星期,德国小蠊的数量有明显减少。按照了说明去点药,用药一个星期之后零星能找到蟑螂尸体...
1396 有点贵,已经用了,期待效果
1397 物流挺快的客服也很贴心好评
1398 看起来不错,暂时没发现蟑螂
1399 买二送一,期待效果呀,这个是同事推荐并且指定的产品,希望好用以后就再来吧…&h...
Name: 评论, Length: 1300, dtype: object
同样也会出现这样的情况,商家为鼓励消费者评价,会给个评价小红包,买家又懒得评价,就会复制别人的评论。因此难免会出现重复值,这里我们也需要添加去除重复评论的操作。
删除重复评论
baier_03.drop_duplicates(inplace=True)
baier_03.reset_index(drop=True,inplace=True)
词频分析
主要分为词频统计和绘制词云图两种常用的词频分析方法。
首先导入需要用到的模块。
from wordcloud import WordCloud, STOPWORDS
import jieba
import matplotlib.pyplot as plt
再对上面得到的语句列表进行结巴分词处理。
text = ''
for i in baier_03:
text += ' '.join(jieba.lcut(i))
text
词云图
这里我定义了一个词云图函数,其中包括自定义停用词,分词,去除停用词,配置词云的基本参数,用分好的词进行词云图生成等等一系列操作。大家也可以将下面代码复制出来做个笔记,以后用到的话,直接拿来即用,方便省事。
def Wordcloud(x):
res=x
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
stopwords = set()
content = [line.strip() for line in open('stopwords.txt','r').readlines()]
stopwords.update(content)
text=""
for i in res:
text=text+" ".join(jieba.lcut(i))
#配置词云的基本参数
my_cloud=WordCloud(
background_color='white',
stopwords=stopwords,#也可用自带的停留词
font_path='/System/Library/Fonts/STHeiti Medium.ttc',
width=1000,
height=500)
#用分好的词进行词云图生成
my_cloud.generate(text)
#显示词云
plt.rcParams['figure.figsize']=(14,8)
plt.imshow(my_cloud)
plt.axis('off')
plt.show()
Wordcloud(baier_03)
主题特征提取
本案例的主题特征提取其实就是提取用户评论中关键字。
关键字提取是从文本中提取跟内容最相关的词语,关键字抽取的结果常用于文档检索、文章标签编辑等,也经常用在文本聚类、文本分 类、关键字摘要等方面。
关键字模型能生成简短的关于文档内容的指示性信息,将文档的主要内容或核心关键字呈现给用户,以决定是否要阅读文档的原文,这样 能够节省大量的浏览时间并提高信息关键信息的展示能力。
文章关键字模型抽取应用场景:帖子、新闻、资讯、评论、问答 的标签、内容和meta信息的产生。
文章关键字模型抽取常用方法:通过词频统计、TF-IDF模型获得文本的主要关键字。
这里我们使用的是jieba分词中的主题特征提取函数jieba.analyse.extract_tags
。具体代码如下。
import jieba.analyse
with open('./baier/文本/stopwords.txt') as f:
stopwords = f.read()
c=''
for i in baier_03:
text_01=jieba.lcut(i)
for word in text_01:
if word in stopwords:
continue
elif word=='hellip':
continue
else:
c+=' '+word
top15 = jieba.analyse.extract_tags(c,topK=15,withWeight=True)
top15
我们取主题评分最高的前15个作为本次分析的对象。
[('蟑螂', 0.53339416054279),
('效果', 0.32093429997410744),
('好评', 0.18237001476358497),
('双十', 0.13505752082213712),
('不错', 0.1224331453720733),
('小强', 0.11686764891551786),
('满意', 0.08728920885818746),
('湿巾', 0.0839275253212345),
('追评', 0.0675780074015135),
('收到', 0.0657725962627024),
('没用', 0.06424569614348834),
('划算', 0.05729263019878829),
('好用', 0.057249479004923415),
('尸体', 0.05667847597855945),
('湿纸巾', 0.05449755096973013)]
为了更加方便分析结果。我们将上面15个主题进行可视化分析。简单地绘制了如下横向柱状图。
plt.figure(figsize=(8,6))
top15 = pd.DataFrame(top15)
plt.barh(top15.iloc[:,0],top15.iloc[:,1])
科凌舆情分析
keling_03 = pd.read_excel('./baier/电商案例数据/竞争数据/评论舆情数据/科林虫控.xlsx')
keling_03.head()
from text_analy import clean
text_02=clean(keling_03)
text_02
词频分析
Wordcloud(text_02)
主题特征提取
stopwords = pd.read_table('./baier/文本/stopwords.txt'
,quoting=3,names=['stopword'])
from theam_extract_02 import extract
extract(text_02,stopwords)
科凌灭蟑产品好评居多,但是差评比拜耳稍微多点。
安速舆情分析
ansu_03 = pd.read_excel('./baier/电商案例数据/竞争数据/评论舆情数据/安速.xlsx')
from text_analy import clean
text_03=clean(ansu_03)
Wordcloud(text_03)
stopwords = pd.read_table('./baier/文本/stopwords.txt'
,quoting=3,names=['stopword'])
from theam_extract_02 import extract
extract(text_03,stopwords)
安速灭蟑产品负面评论极少,灭蟑产品优化方面可以考察安速。
产品流量分析
流量(Traffic)是企业获得用户的第一步,对于大多数需要“自力更生”企业而 言,流量几乎是企业运营的命脉之一,没有流量就没有一切。流量数据化运营要解决的本质问题是 如何通过数据获得更多流量以及有效流量,然后完成最大化的营销转化目标。
这里列举八大流量分析工具:
这里介绍一些 市场上主流的流量分析工具,它们可以提供流量数据的跟踪、采集、配 置、处理、分析和整合功能,其中有免费也有付费的。
Adobe Analytics Webtrekk Suite Webtrends Google Analytics IBM Coremetrics 百度统计 Flurry 友盟
无流量不电商,没有流量大电商就犹如线下在荒郊野外开了一个购物中心,虽然硬件都不错,但是没人光顾。流量大来源需要细分,细分包括多地理属性的细分、渠道来源的细分、时间属性的细分、推广内容的细分等,其中流量来源渠道是其中的重点,也算最复杂的一部分。
细分完后的流量可以通过数据对比找到流量的主要来源,接下来要做的就是实时监控主要渠道流量的对比和趋势变化。对比可以和竞争对手对比,和类目流量对比等。
本案例流量分析,主要细分各个品牌官方旗舰店流量来源渠道及交易指数,通过横向比较各个流量来源的交易指数大小,及纵向比较不同品牌商各流量渠道交易指数,从而完成竞品分析的一部分。
拜耳流量分析
baier_04 = pd.read_excel('./baier/电商案例数据/拜耳店铺数据/拜耳官方旗舰店流量渠道.xlsx')
del baier_04['交易指数.1']
baier_04.set_index('流量来源',inplace=True)
baier_04.head()
top10 = baier_04.sort_values('交易指数',ascending=False)[:10]
top10.plot(kind='barh',figsize=(10,6))
科凌流量分析
kelin=pd.read_excel('./baier/电商案例数据/竞争数据/流量渠道数据/科凌虫控旗舰店流量渠道.xlsx')
kelin['交易占比']=kelin.交易指数/kelin.交易指数.sum()*100
top10=kelin.sort_values('交易指数',ascending=False).reset_index(drop=True).iloc[0:10,:]
top10.index=top10['流量来源']
top10.drop(['流量来源','交易占比'],axis=1,inplace=True)
top10.plot(kind='barh');
安速流量分析
ansu=pd.read_excel('./baier/电商案例数据/竞争数据/流量渠道数据/安速家居旗舰店流量渠道.xlsx')
ansu['交易占比']=ansu.交易指数/ansu.交易指数.sum()*100
top10=ansu.sort_values('交易指数',ascending=False).reset_index(drop=True).iloc[0:10,:]
top10.index=top10['流量来源']
top10.drop(['流量来源','交易占比'],axis=1,inplace=True)
top10.plot(kind='barh');
主要的竞争对手都不太注重淘内流量服务购买,拜耳可以通过直通车等付费流量渠道来增加产品曝光。
推荐阅读
欢迎长按扫码关注「数据管道」