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');
主要的竞争对手都不太注重淘内流量服务购买,拜耳可以通过直通车等付费流量渠道来增加产品曝光。
OK,今天的分享就到这里了。
云朵之家--交流群正式开放啦!
欢迎扫码添加云朵君好友,审核后拉你入群。
推荐阅读
2021-07-27
2021-05-14
2021-07-05
钱都去哪了?大数据解读年轻人的消费观
2021-06-30
数据显示:每6个人里就有一个单身,脱单遥遥无期?
2021-07-29
2021高考热度最高专业,大数据分析告诉你
2021-06-07