Python电商数据分析案例|如何分析竞争对手?

数据管道

共 18520字,需浏览 38分钟

 ·

2021-08-05 17:45

大家好,我是宝器!

导读: 本篇中将继续从微观市场方面,从产品结构、产品舆情及产品流量三个方面深入探讨拜耳产品的竞品分析。

👆点击关注|设为星标|干货速递👆



电商分析基础知识

电子商务和传统零售数据分析的区别

  • 传统零售是利用二八法则生存,电商是靠长尾理论积累销售。
  • 电商是大数据,传统零售是小数据。
  • 传统零售是"物流",零售过程就是商品的流动。电子商务是"信息流",顾客通过搜索、比价、评论、分享产生信息,达到购买的目的。
  • 传统零售注重体验感,购物有时候也是社交的一部分,现在的购物中心基本是吃喝玩乐一体化设计。电商注重服务和效率,虽然也有吃喝玩乐的产品,但却不能方便及时享受。
  • 传统零售是做加法,电子商务是做乘法。传统零售通过一家店一家店的开发来扩充自己的影响力,电商则通过资金的投入迅速抢占市场。
  • 成本结构不同,传统零售的主要成本是租房与人工成本,电商的主要成本是物流和营销成本。

电商数据分析需要的数据

电商需要的数据复杂,数据来源渠道也多样化,当然数据质量也是有好有坏的。

  • 营销数据
    包括营销费用、覆盖用户数、达到用户数、打开或点击用户数。
  • 流量数据
    包括浏览量、访客数、登陆时间、在线时长等基础数据。
  • 会员数据
    包括会员的姓名、出生日期、真实性别、网络性别、地址、手机号、微博号、微信号等基础数据。
  • 交易及服务数据
    包括交易金额、交易数量、交易人数、交易商品、交易场所、交易时间。供应链服务等数据。
  • 行业数据
    淘宝的数据魔方提供行业品牌的关键字搜索、店铺排名、销售、会员等数据查询。

产品结构分析

波士顿矩阵

波士顿矩阵又称市场增长率-相对市场份额矩阵、波士顿咨询集团法、四象限分析法、产品系列结构管理法等。

适用于一般产品,不适合引流产品。

  • 明星产品:高市场占有率,高业务增长率
  • 金牛产品:高市场占有率,低业务增长率
  • 问题产品:低市场占有率,高业务增长率
  • 瘦狗产品:低市场占有率,低业务增长率

波士顿矩阵的应用

(1)评价各项业务的前景。BCG是用市场增长率这一指标来表示发展前景的。这一步的数据可以从企业的经营分析系统中提取。

(2)评价各项业务的竞争地位。BCG是用“相对市场份额”这个指标来表示竞争力的。这一步需要做市场调查才能得到相对准确的数据。计算公式是把一单位的收益除以其最大竞争对手的收益。

(3)表明各项业务在BCG矩阵图上的位置。具体方法是以业务在二维坐标上的坐标点为圆心画一个圆圈,圆圈的大小来表示企业每项业务的销售额。

(4)确定纵坐标“市场增长率”的一个标准线,从而将“市场增长率”划分为高、低两个区域。
比较科学的方法有两种:

  1. 把该行业市场的平均增长率作为分界线
  2. 把多种产品的市场增长率(加权)平均值作为界分点

需要说明的是,高市场增长定义为销售额至少达到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 买二送一,期待效果呀,这个是同事推荐并且指定的产品,希望好用以后就再来吧&hellip;&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 买二送一,期待效果呀,这个是同事推荐并且指定的产品,希望好用以后就再来吧&hellip;&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');

主要的竞争对手都不太注重淘内流量服务购买,拜耳可以通过直通车等付费流量渠道来增加产品曝光。

·················END·················

推荐阅读

  1. 我在字节做了哪些事

  2. 写给所有数据人。

  3. 从留存率业务案例谈0-1的数据指标体系

  4. 数据分析师的一周

  5. 超级菜鸟如何入门数据分析?


欢迎长按扫码关注「数据管道」


浏览 50
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报