18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 电子商务 > 淘宝电商数据挖掘与分析

淘宝电商数据挖掘与分析

时间:2023-03-15 23:32:01 | 来源:电子商务

时间:2023-03-15 23:32:01 来源:电子商务

一、项目描述

该项目为一个咨询项目,客户为手机品牌商,主要目的是通过数据分析帮助制客户制定品牌策略策略、产品策略和价格策略,助力客户品牌的成长和销量的增长。由于涉及到一些商业上的保密,所以本文最终公开的策略偏宏观。

电商平台为我们提供了大量的销售数据,以及消费者的反馈数据,从电商平台入手我们能够同时了解到市场、产品和消费者,考虑到数据量以及用户群体的丰富性,我们选择了淘宝电商的数据作为我们的数据源。在项目中同时涉及到市场,产品和消费者,所以我们的思路是同时获取到淘宝电商平台上手机的销售数据以及评论数据,然后通过数据挖掘,从评论中挖掘出产品的属性特征和用户特征并进行关联,从而建立起市场、产品和消费者三者直接的联系,然后进行数据分析,为我们帮助客户制定品牌、产品以及价格策略提供依据。

二、数据采集

数据的采集上我们用python通过爬虫的方式进行采集,思路为先模拟登录淘宝,然后再通过关键字进行搜索,搜索后得到商品的列表,通过商品的列表信息,我们可以得到商品的id信息,得到id后我们通过把不同商品的id传递给不同的线程,通过多线程的方式同时爬取商品的销售数据,评论数据和评分数据。

这里不再进行详细的说明,有兴趣的朋友可以参考具体代码,链接(包括数据)如下

由于评论的文件太大,没办法上传到github上,所以如果有朋友对评论数据感兴趣的可以私信我。

三、数据挖掘

数据挖掘这一部分相对来说比较困难一些,我们主要是对评论数据进行了挖掘,挖掘两个方面的信息,一个方面是评论的标签(产品属性+评论观点),一部分是用户分组信息,挖掘这两部分信息的目的主要用这两部分数据建立消费者的用户画像,同时把消费者和市场和产品关联到一起,把评论信息结构化数值化,为后面的数据分析做准备。

在数据挖掘部分主要用到的一些技术和工具是:

哈工大ltp分词、词性标注、依存句法分析、命名实体识别、词义角色标注;

Word2vect的gensim模块进行词向量计算;

k_mens聚类,得到用户分组和产品的属性,并为后面产品评论特征和用户特征做归一化做准备

具体大家可以参考如下代码:

在链接的代码中,涉及到的评论文本由于文件过大,暂时无法上传,感兴趣的朋友可以私信我。

四、数据分析

经过数据的挖掘和一些数据的处理,我们得到4491款不同手机数据信息,数据包含61个字段

(1)数据的理解

①首先导入数据,查看数据的基本信息

df = pd.read_csv('F:/pycharm project data//taobao/phone//final_goods_info.csv', encoding='utf-8', index_col=0)print(df.columns)这里我们可以把字段氛围四类

第一类字段为一些基本的信息,主要包括以下

itemid:商品的id

category:商品的分类

sellerid:店铺id

location:发货地址

comment_count:评论数量

price:价格

sale_amount:销售量

title:商品标题,标题中包括包含着品牌信息

sale_volume:产品的销售额

第二类字段为产品的评论信息,主要包含电池、屏幕、音质等,其中在每个属性下分为下标0和1,0表示negative评论,1表示positive评论,例如:

电池_0:该字段就表示电池负面评价字段,对应的数值表示评论中出现该标签的频数

电池_1:表示电池方面的正面评价,对应的数值表示评论中出现该标签的频数。

第三类字段为用户信息分字段,用户信息字段根据年龄和角色,两个字段

年龄分组中:主要包含儿童、青年、中年和老年人这些值

角色分组中:主要包含学生,爸爸,妈妈、女朋友、男朋友这些信息

第四类字段只包含一个字段,主要是用户对该产品的评分

score:用户对商品的评分,5分为满分

(2)数据的清洗以及数据的处理

①缺失值的填充

对于数值型的数据,缺失值主要集中在评论频次上,评论频次的缺失主要由于该商品没有涉及到该品论标签,所以我们可以直接填充为0,这样也方便我们后续的数据类型的转化;

df.fillna(0, inplace=True)然后我们需要将频次的数据转化为以及其他一些有实际意义的数字转化为int型

cols = ['itemid', 'category', 'sellerId', 'isTmall', 'comment_count', '系统很强大', '手机不错', '用得久', '手机一般', '电池_1', '电池_0', '信号_1', '信号_0', '性价比_1', '功能_1', '功能_0', '音质_1', '音质_0', '屏幕_1', '屏幕_0', '正品_1', '软件_1', '软件_0', '按键_1', '按键_0', '外观_1', '外观_0', '拍照_1', '拍照_0', '手感_1', '死机_1', '配件_1', '配件_0', '包装_1', '赠品_1', '赠品_0', '物流_1', '物流_0', '视频_1', '发热_1', '发热_0', '轻便_1', '操作_1', '性价比_0', '正品_0', '手感_0', '死机_0', '包装_0', '总体_1', '总体_0', '视频_0', '轻便_0', '操作_0']for col in cols: df[col] = df[col].astype('int64')对于用户分组的信息,如果发生缺失则代表,该商品中没有提及到手机适合的用户对象,所以我们用空值进行填充

df.loc[df['年龄分组'] == 0, ['年龄分组']] = ''df.loc[df['角色分组'] == 0, ['角色分组']] = ''②异常值的处理

首先我们来看价格,我们做一各品牌手机价格的箱线图:

我们可以发现,荣耀手机的价格接近100000,导致箱线图其他数据在图中直接没有显示出来,但是我们查看其销售量却为0,所以这类数据是存在异常的,我们使用分位数的方法来去除异常数据:

# 用分位数法去除异常值high_q = df['price'].quantile(q=0.75)# 上四分位数low_q = df['price'].quantile(q=0.25)# 下四分位数interval = (high_q - low_q)# 分位数间隔df = df.loc[(df['price'] > low_q - 3*interval) & (df['price'] < high_q + 3*interval), ]去除异常数据之后,我们再来看一下各品牌手机的价格情况:

从上图中可以看出,进行处理以后手机的价格基本位于11000元以下,符合我们的预期。

③数据分箱

为了方便我们后续的研究,我们对价格数据进行分箱处理

# 对价格进行分箱处理labels = list(np.arange(60))counts, bins_edge = np.histogram(df['price'], bins=60)df['分组'] = pd.cut(df['price'], bins=bins_edge, labels=labels, include_lowest=True)price_list = []for bin_price in bins_edge: price_list.append(round(bin_price, 1))df['分组'] = pd.cut(df['price'], bins=bins_edge, labels=labels, include_lowest=True)plt.figure(figsize=(20, 10))sns.barplot(x=price_list[1: 61], y=counts)plt.xticks(rotation=90)plt.ylabel('count')plt.title('price')plt.show()结果如下:

注意这里的横轴表示每个价格小区间,如175.0代表0-175的价格,纵轴表示位于该价格区间中的商品数量。为了在后面表示方便,我们用0-59的标签来代表每个价格小区间。

(3)市场分析

首先根据价格分组我们可以得到价格和销量,价格和销售额之间的关系,如下:

# 按照价格分组数据进行切分gp_df = df.groupby('分组')# 价格和销量的曲线图g_sales_amount = gp_df['sales_amount'].agg(sum)plt.figure(figsize=(20, 12))sns.pointplot(x=np.arange(60), y=g_sales_amount.values[0: 60], color='r')plt.title('price-sales_amount')plt.xlabel('price')plt.xticks(rotation=90)plt.ylabel('sales_amount')plt.show()# 价格和销售量的关系g_sales_volume = gp_df['sales_volume'].agg(sum)plt.figure(figsize=(20, 12))sns.pointplot(x=np.arange(60), y=g_sales_volume.values[0: 60], color='r')plt.title('price-sales_volume')plt.xlabel('price')plt.xticks(rotation=90)plt.ylabel('sales_volume')plt.show()# print(bins_edge)对比价格和销量,价格和销售额的的关系,我们可以得出以下信息:

①价格和销售额以及销售量的关系都呈现出复杂的脉冲关系;

②在价格和销量的关系中出现了三个显著的波峰位置,一个位置是0,对应0-175元的价格区间;一个位置是6,对应1049.9-1224.9元的价格区间;一个是31的位置,对应的是5424.5-5599.5元的价格区间;

③在价格和销售额的关系中出现了两个最显著的波峰位置,一个是6对应1049.9-1224.9元的价格区间,在价格低于1224.9这个区间内,价格和销售额呈现出正相关的关系;另一个是31的位置,对应的是5424.5-5599.5元的价格区间,在价格高于5599.5这个价位的时候销售额明显急剧下降。

④在6-31的位置区间内不管是销售量还是销售额都呈现出反复脉冲的关系。

所以我们发现销量和销售额随着价格的变动情况只有在0这个位置上差异非常大,我们把这一部分产品筛选出来查看一下,发现这是因为处于0-175这个价位的有一些老年机和儿童手表电话卖的特别火,但是由于价格较低,其本身销售额和手机比还是差很多,现在我们把这一部分的数据剔除得到如下关系:

# 舍去价格位于0-175的价位之间的产品df = df.loc[df['分组'] != 0, ]# 按照价格分组数据进行切分gp_df = df.groupby('分组')# 价格和销量的曲线图g_sales_amount = gp_df['sales_amount'].agg(sum)plt.figure(figsize=(20, 12))sns.pointplot(x=np.arange(60), y=g_sales_amount.values[0: 60], color='r')plt.title('price-sales_amount')plt.xlabel('price')plt.xticks(rotation=90)plt.ylabel('sales_amount')plt.show()# 价格和销售量的关系g_sales_volume = gp_df['sales_volume'].agg(sum)plt.figure(figsize=(20, 12))sns.pointplot(x=np.arange(60), y=g_sales_volume.values[0: 60], color='r')plt.title('price-sales_volume')plt.xlabel('price')plt.xticks(rotation=90)plt.ylabel('sales_volume')plt.show()# print(bins_edge)我们现在可以发现,当剔除了0-175之间特殊消费的影响后,销售额和销售量随价格波动的具有非常高的一致性,仍然有两个关键的位置,一个位置是6,对应1049.9-1224.9元的价格区间;一个是31的位置,对应的是5424.5-5599.5元的价格区间。价格低于1224.9时,销量和销售额随着价格的升高而升高;当价格位于1224.9-5424.5元区间内时,价格和销售量和销售额之间都呈现出反复脉冲的关系;当价格为5424.5-5599.5元区间内的时候销售额和销售量都出现显著的波峰;当价格高于5599.5元的时候,销售量和销售额都随着价格升高急剧下降。

所以按照这样的关系,我们可以把手机市场切分了三个市场,一个是1225元以下,我们称之为低端市场,一个是1225-5425元之间,我们称之为中端市场;一个是5425元以上,我们称之为高端市场

根据市场分析,我们首先来看一下各个市场的销售额和销售量的分布情况:

# 总体市场分析df['市场分组'] = ''df.loc[df['分组'].isin(list(np.arange(0, 7))), ['市场分组']] = 'low_market'df.loc[df['分组'].isin(list(np.arange(7, 31))), ['市场分组']] = 'medium_market'df.loc[df['分组'].isin(list(np.arange(31, 60))), ['市场分组']] = 'high_market'print(df.head(100))market_a_df = df.groupby('市场分组')['sales_amount'].sum().sort_values(ascending=False)market_v_df = df.groupby('市场分组')['sales_volume'].sum().sort_values(ascending=False)# 市场销售额和销售量分析plt.figure(figsize=(10, 10))plt.pie(market_a_df, labels=market_a_df.index, autopct="%1.1f%%")plt.title('market_amount')plt.show()plt.figure(figsize=(10, 10))plt.pie(market_v_df, labels=market_v_df.index, autopct="%1.1f%%")plt.title('market_volume')plt.show()对比销售额和销售量在各个市场中的占比情况,我们可以得到以下信息:

低端市场中的销售量占优势,但是由于价格过低,在营收方面占比最少,而中端市场依靠42.6%的市场销量,创造了62.7%的市场营收,高端市场依靠6.9%的市场销量,创造了23.0%的市场营收。

主要原因是低端市场的价格太低,虽然在销量上占优,但是在营收上远远低于中端市场和高端市场中。但是我们重点应该关注的是低端市场高销量背后,是否隐藏着商业机会?

针对这个问题,我们来看一下,低端市场中的用户群体:

# 低端市场用户分布研究low_df = df.loc[df['分组'].isin(list(np.arange(0, 7))), ]g_low_df = low_df.groupby('年龄分组')['sales_amount'].sum().sort_values(ascending=False)# 低端市场的用户分布plt.figure(figsize=(10, 10))plt.pie(g_low_df, labels=g_low_df.index, autopct="%1.1f%%")plt.title('low_market_user')plt.show()在上面的图中,左边是低端市场中用户按照年龄分类后的分布情况,右边是我国目前的人口结构中的年龄分布情况。对比我们可以发现在低端市场中,主要是老年人用户群体,占比超过53.3%,这非常符合我们的预期。但是我们也要注意到,按照低端市场在总市场占比50.5%,低端市场的用户中年人占比33.9%,中年人在我国人口结构中占比71.2%来计算,这部分中年人用户是一个庞大的基数。那这部分中年人的消费为什么会在低端市场?

针对这个问题,我们来看一下中年人用户的一些消费偏好:

# 低端市场中年人用户画像研究cols = ['系统很强大', '手机不错', '用得久', '手机一般', '电池_1', '电池_0', '信号_1', '信号_0', '性价比_1', '功能_1', '功能_0', '音质_1', '音质_0', '屏幕_1', '屏幕_0', '正品_1', '软件_1', '软件_0', '按键_1', '按键_0', '外观_1', '外观_0', '拍照_1', '拍照_0', '手感_1', '死机_1', '配件_1', '配件_0', '包装_1', '赠品_1', '赠品_0', '物流_1', '物流_0', '视频_1', '发热_1', '发热_0', '轻便_1', '操作_1', '性价比_0', '正品_0', '手感_0', '死机_0', '包装_0', '总体_1', '总体_0', '视频_0', '轻便_0', '操作_0']# 进行用户分组分析g_low_um_df = low_df.loc[df['年龄分组'] == '中年人', cols].sum(axis=0).sort_values(ascending=False)# 中年人用户关注性能分析plt.figure(figsize=(10, 10))plt.pie(g_low_um_df[0: 10], labels=g_low_um_df.index[0: 10], autopct="%1.1f%%")plt.title('low_muser_point')plt.show()#中年人品牌分析bm_df = low_df.loc[df['年龄分组'] == '中年人']g_low_bm_df = bm_df.groupby('brand')['sales_amount'].sum().sort_values(ascending=False)# 中年人用户品牌分析plt.figure(figsize=(10, 10))plt.pie(g_low_bm_df[0: 8], labels=g_low_bm_df.index[0: 8], autopct="%1.1f%%")plt.title('low_muser_brand')plt.show()在上面的图中,左边是中年人用户对手机某方面属性关注的占比情况,右边为中年人用户对品牌的偏好。可以发现中年人用户更为关注手机的整体性能,以及外观方面的属性,更青睐于荣耀,华为和小米三个品牌。(注意这里把荣耀和华为拆开是为了后面的对比方便)

现在我们来看一下低端市场的用户画像:

# 低端市场用户画像研究cols = ['系统很强大', '手机不错', '用得久', '手机一般', '电池_1', '电池_0', '信号_1', '信号_0', '性价比_1', '功能_1', '功能_0', '音质_1', '音质_0', '屏幕_1', '屏幕_0', '正品_1', '软件_1', '软件_0', '按键_1', '按键_0', '外观_1', '外观_0', '拍照_1', '拍照_0', '手感_1', '死机_1', '配件_1', '配件_0', '包装_1', '赠品_1', '赠品_0', '物流_1', '物流_0', '视频_1', '发热_1', '发热_0', '轻便_1', '操作_1', '性价比_0', '正品_0', '手感_0', '死机_0', '包装_0', '总体_1', '总体_0', '视频_0', '轻便_0', '操作_0']# 进行用户分组分析g_low_u_df = low_df[cols].sum(axis=0).sort_values(ascending=False)# 低端市场用户关注性能分析plt.figure(figsize=(10, 10))plt.pie(g_low_u_df[0: 10], labels=g_low_u_df.index[0: 10], autopct="%1.1f%%")plt.title('low_user_point')plt.show()#低端市场品牌分析g_low_m_df = low_df.groupby('brand')['sales_amount'].sum().sort_values(ascending=False)# 中年人用户品牌分析plt.figure(figsize=(10, 10))plt.pie(g_low_m_df[0: 8], labels=g_low_m_df.index[0: 8], autopct="%1.1f%%")plt.title('low_user_brand')plt.show()我们可以发现低端市场中的用户画像和低端市场中中年人的用户画像差距非常大,在手机的属性方面,低端市场的用户更为关注的是手机的音质、功能(手机的基本功能,例如电打电话、上网等)方面的属性,这与低端市场中老年人占比较多有关;品牌的偏好上,低端市场的用户出现了一些不知名的小品牌,荣耀也占一定的比例。

现在我们来看一些中端市场的用户画像:

# 中端市场用户画像研究cols = ['系统很强大', '手机不错', '用得久', '手机一般', '电池_1', '电池_0', '信号_1', '信号_0', '性价比_1', '功能_1', '功能_0', '音质_1', '音质_0', '屏幕_1', '屏幕_0', '正品_1', '软件_1', '软件_0', '按键_1', '按键_0', '外观_1', '外观_0', '拍照_1', '拍照_0', '手感_1', '死机_1', '配件_1', '配件_0', '包装_1', '赠品_1', '赠品_0', '物流_1', '物流_0', '视频_1', '发热_1', '发热_0', '轻便_1', '操作_1', '性价比_0', '正品_0', '手感_0', '死机_0', '包装_0', '总体_1', '总体_0', '视频_0', '轻便_0', '操作_0']# 进行用户分组分析medium_df = df.loc[df['分组'].isin(list(np.arange(7, 31))), ]g_medium_u_df = medium_df[cols].sum(axis=0).sort_values(ascending=False)# 低端市场用户关注性能分析plt.figure(figsize=(10, 10))plt.pie(g_medium_u_df[0: 10], labels=g_medium_u_df.index[0: 10], autopct="%1.1f%%")plt.title('medium_user_point')plt.show()#中端市场品牌分析g_medium_m_df = medium_df.groupby('brand')['sales_amount'].sum().sort_values(ascending=False)# 中年人用户品牌分析plt.figure(figsize=(10, 10))plt.pie(g_medium_m_df[0: 8], labels=g_medium_m_df.index[0: 8], autopct="%1.1f%%")plt.title('medium_user_brand')plt.show()对比中端市场用户的画像和低端市场中中年人的用户画像,可以发现在手机的属性方面,中端市场用户和低端市场中年人的用户关注点近似,都是产品的功能(手机的基本功能,例如电打电话、上网等)、外观、电池、拍照等;在品牌偏好上苹果的价位较高,没有千元机,所以低端市场的中年人用户没有选择权,但对华为、荣耀、小米几个品牌商认同度接近。

通过中年人用户的对比我们发现一下几点信息:

①低端市场中中年人用户占比较大,按照低端市场销量占比和中年人人口占比来计算,这是一个庞大的消费群体;

②单独分析低端市场中年人用户的画像,发现其和低端市场整体用户画像差异较大而和中端市场整体用户画像差异较小;

③基于以上两点,我们判断,低端市场中的这一部分中年人的消费需求理应在中端市场,但是由于某种原因使得他们只能选择低端市场;

④中端市场和低端市场最显著的区别就是低端市场的整体价格比中端市场要低很多,所以我们可以判断低端市场中中年人这个群体的消费需求整体上受到收入上的抑制,并没有充分释放出来,在收入保持稳定增长的前提下,未来中端市场的存在继续壮大发展的潜力。

(4)中端市场产品和价格分析

在了解了中端市场存在着巨大的发展潜力后,如何壮大自己品牌在中端市场的竞争力呢?

针对这个问题,我们首先再来看一下中端市场价格和销售量以及销售额的关系:

# 中端市场分析gp_df = df.groupby('分组')# 价格和销量的曲线图g_sales_amount = gp_df['sales_amount'].agg(sum)plt.figure(figsize=(20, 12))sns.pointplot(x=np.arange(7, 31), y=g_sales_amount.values[7: 31], color='r')plt.title('price-sales_amount')plt.xlabel('price')plt.xticks(rotation=90)plt.ylabel('medium_sales_amount')plt.show()# 价格和销售额的关系g_sales_volume = gp_df['sales_volume'].agg(sum)plt.figure(figsize=(20, 12))sns.pointplot(x=np.arange(7, 31), y=g_sales_volume.values[7: 31], color='r')plt.title('price-sales_volume')plt.xlabel('price')plt.xticks(rotation=90)plt.ylabel('medium_sales_volume')plt.show()可以发现中端市场的价格和销售额以及销售量都存在着反复脉冲的复杂关系,那为什么会呈现出这种关系呢?

我们来观察一下中端市场的消费者群体:

# 中端市场用户研究g_medium_df = medium_df.groupby('年龄分组')['sales_amount'].sum().sort_values(ascending=False)# 低端市场的用户分布plt.figure(figsize=(10, 10))plt.pie(g_medium_df, labels=g_medium_df.index, autopct="%1.1f%%")plt.title('medium_market_user')plt.show()上图是中端市场用户的一个分布图,由于我们在从评论中挖掘用户信息的时候,主要是挖掘在评论中提及到的对象,比如某条评论中可能会提及到手机适合老人使用,那么我们就可以挖掘到老人这个用户信息,但是对于大部分给自己买手机的消费者来说,不会表明自己的身份,只会对产品本身加以评论,所以图中缺失的80.1%的用户信息主要集中在中青年,有独立的消费能力的人群中。

对于以中青年为主的中端市场,消费者有什么样的消费偏好呢:

我们来看中端市场的用户画像:

对比以上两个图,我们可以得到以下几点信息:

①中端市场的用户除了关注手机整体性能这种通用属性外,更加关注手机的外观、拍照、电池、是否正品等方面的属性;

②在品牌商中端市场的品牌偏好呈现多元化,华为、荣耀、vivo、小米、oppo等主要的品牌都占有一定的市场份额;

我们可以看到中端市场的用户不管是在产品属性还是品牌上,消费需求非常的多元化,这就很好地解释了为什么为什么中端市场在会出现反复脉冲的关系。由于用户消费需求的多元化,所以品牌商为了满足不同消费群体的个性化需求,利用产品设计和价格的多元化变相实施价格歧视,达到利润的最大化,所以基本在一定的价格区间内就会出现一次销量和销售额的急剧上升,中端市场是一个多层次的市场。

为了这一结论更加可靠,我们可以从品牌的价格竞争策略上做一个横向对比:

# 中端市场价格多元化与销售量的关系pro_list = ['华为', '苹果', '小米', '荣耀', 'oppo', 'vivo', '三星']g_b_medium_df = medium_df.groupby('brand')['price']price_sum_list = []for i in range(len(pro_list)): b_df = g_b_medium_df.get_group(pro_list[i]).value_counts() price_sum_list.append(len(b_df))# print(price_sum_list)plt.figure(figsize=(12, 8))sns.barplot(x=pro_list, y=price_sum_list)plt.title('medium_market_brand_price')plt.show()g_b_medium_volume_df = medium_df.groupby('brand')['sales_volume']volume_sum_list = []for i in range(len(pro_list)): b_df = g_b_medium_df.get_group(pro_list[i]).sum() volume_sum_list.append(b_df)# print(price_sum_list)plt.figure(figsize=(12, 8))sns.barplot(x=pro_list, y=volume_sum_list)plt.title('medium_market_brand_volume')plt.show()在上图中,左边的图表示在中端市场中每个品牌手机制定的价格数量,右边的图表示每个品牌手机在中端市场中的销售额,我们可以很明显的看出一致性非常强,既制定价格数越多的品牌,其对应的销售额就越多,这也很好的证明了我们上面的结论。

所以,在未来,手机厂商们应该重点把握中端市场仍未饱和的机会,注重以年轻用户喜欢拍照,注重产品外观,看中产品是否为正品等方面的性能为导向,打造个性化、多样化的产品,制定多元化的价格策略,并制定一定的品牌验证机制,实现营收上的增长。

(5)高端市场产品和价格

高端市场在总的市场占比中超过20%,那么高端市场是否存在机会呢?

我们先来看一下高端市场的用户分布情况:

上图是高端市场用户的一个分布图,和中端市场类似,由于我们在从评论中挖掘用户信息的时候,主要是挖掘在评论中提及到的对象,比如某条评论中可能会提及到手机适合老人使用,那么我们就可以挖掘到老人这个用户信息,但是对于大部分给自己买手机的消费者来说,不会表明自己的身份,只会对产品本身加以评论,所以图中缺失的98.0%的用户信息主要集中在中青年,有独立的消费能力的人群中。

接着我们来看高端市场用户画像:

# 高端市场用户画像研究high_df = df.loc[df['分组'].isin(list(np.arange(31, 60))), ]cols = ['系统很强大', '手机不错', '用得久', '手机一般', '电池_1', '电池_0', '信号_1', '信号_0', '性价比_1', '功能_1', '功能_0', '音质_1', '音质_0', '屏幕_1', '屏幕_0', '正品_1', '软件_1', '软件_0', '按键_1', '按键_0', '外观_1', '外观_0', '拍照_1', '拍照_0', '手感_1', '死机_1', '配件_1', '配件_0', '包装_1', '赠品_1', '赠品_0', '物流_1', '物流_0', '视频_1', '发热_1', '发热_0', '轻便_1', '操作_1', '性价比_0', '正品_0', '手感_0', '死机_0', '包装_0', '总体_1', '总体_0', '视频_0', '轻便_0', '操作_0']# 进行用户分组分析g_high_u_df = high_df[cols].sum(axis=0).sort_values(ascending=False)# 高端市场用户关注性能分析plt.figure(figsize=(10, 10))plt.pie(g_high_u_df[0: 10], labels=g_high_u_df.index[0: 10], autopct="%1.1f%%")plt.title('high_user_point')plt.show()#中端市场品牌分析g_high_m_df = high_df.groupby('brand')['sales_amount'].sum().sort_values(ascending=False)# 中年人用户品牌分析plt.figure(figsize=(10, 10))plt.pie(g_high_m_df[0: 5], labels=g_high_m_df.index[0: 5], autopct="%1.1f%%")plt.title('high_user_brand')plt.show()上图中左边为高端市场中用户关注的手机属性分布情况,右图为高端市场的用户对品牌的偏好分布情况,对比后我们发现:

①区别于中低端市场,高端市场中,用户除了关注手机的一些通用属性外,更为关注产品的外观以及是否为正品;

②高端市场中品牌的集中度非常高,苹果的销量占比超过70%,华为和三星占一定比例。

对于高端市场而言,是否存在中端市场中的价格多元化以及销售额正相关的关系呢?

我们来看高端市场中制定各品牌制定的价格数量和销售额之间的关系:

# 高端市场价格多元化与销售量的关系pro_list = ['华为', '苹果', '小米', '荣耀', 'oppo', 'vivo', '三星']g_b_high_df = high_df.groupby('brand')['price']price_sum_list = []for i in range(len(pro_list)): b_df = g_b_high_df.get_group(pro_list[i]).value_counts() price_sum_list.append(len(b_df))# print(price_sum_list)plt.figure(figsize=(12, 8))sns.barplot(x=pro_list, y=price_sum_list)plt.title('high_market_brand_price')plt.show()g_b_high_volume_df = high_df.groupby('brand')['sales_volume']volume_sum_list = []for i in range(len(pro_list)): b_df = g_b_high_df.get_group(pro_list[i]).sum() volume_sum_list.append(b_df)# print(price_sum_list)plt.figure(figsize=(12, 8))sns.barplot(x=pro_list, y=volume_sum_list)plt.title('high_market_brand_volume')plt.show()在上图中,左边的图表示在高端市场中每个品牌手机制定的价格数量,右边的图表示每个品牌手机在高端市场中的销售额,我们可以很明显的看出华为在高端市场中价格制定相对比较集中,但是其在销售额上仍然表现比较好,这其实反映了华为进入高端市场是相对比较谨慎的。

那高端市场对于一个追求营收最大化的品牌来说,应不应该重点布局呢?

我们这里先看一下各品牌的市场占比以及均价其情况:

# 销量和销售额分析g_a_df = df.groupby('brand')['sales_amount'].sum().sort_values(ascending=False)g_v_df = df.groupby('brand')['sales_volume'].sum().sort_values(ascending=False)# 销售量plt.figure(figsize=(12, 12))plt.pie(g_a_df[0: 8], labels=g_a_df.index[0: 8], autopct="%1.1f%%")plt.title('high_user_brand')plt.show()# 销售额plt.figure(figsize=(12, 12))plt.pie(g_v_df[0: 8], labels=g_v_df.index[0: 8], autopct="%1.1f%%")plt.title('high_user_brand')plt.show()在上图中,左边的图表示各品牌的销量占比,右边的图表示每个品牌手机销售额占比。结合三星在中高端市场多元化的价格策略分析,我们发现尽管三星在中端市场和高端市场中实施了多元化的价格策略,但是从整体上来看,中高端市场的价格多元化战略并没有给三星带来整体市场在销量以及销售额上的提升。这是什么原因造成的呢?

对比三星在中端市场和高端市场制定价格和销售额的关系,我们发现,三星在高端市场多元化的价格战略实际上带来了销售的增长,但是在中端市场中三星的价格多元化战略明显比较失败,因为小米、荣耀、vivo、oppo制定的价格数量都小于三星,但是在销售额上却要比三星的占比要高,最终从整个市场来看,荣耀、vivo、小米、oppo的销售额都高于三星。

那为什么三星会在中端市场遭遇滑铁卢呢?

我们来看一下中端市场各品牌手机的均价:

# 各品牌均价g_mp_df = medium_df.groupby('brand')['price'].mean().sort_values(ascending=False)plt.figure(figsize=(20, 8))sns.barplot(x=g_mp_df.index, y=g_mp_df.values)plt.xticks(rotation=90)plt.title('m_brand_mean_price')plt.show()我们可以看出在中端市场,销售额占比较大的几个品牌除了苹果外,华为、小米、荣耀、oppo、vivo的价格均低于三星。

从整体上来看,在中端市场中三星虽然价格也比较多元化,但是,第一品牌弱于苹果,第二价格高于华为、小米、荣耀、oppo、vivo,所以导致三星在中端市场从品牌和价格上都不占优势,在中端市场中的销量和营收占比都较低。这是三星在战略上的失误,三星并没有在中端市场取稳固,取得优势的前提下,再进入高端市场。

而相对来说国内的品牌华为在中端市场稳固的前提下非常谨慎地进入高端市场,并取得了一定的成效。vivo基本上没有进攻高端市场,继续做大坐稳中端市场,并在2019年中市占率超过了oppo。oppo正在尝试进入高端市场,中端市场的稳固性出现一定的调整。小米也在尝试进入高端市场,但是成效并不理想。

所以我们发现中端市场,对于一个品牌来说,不管是市场的稳固,还是发展机遇都非常重要,对于高端市场,品牌的壁垒非常强,用户对品牌的认可度非常高,不应该在中端市场得不到稳固的情况下贸然进入。

(7)策略建议

①中端市场在未来仍然存在着较大的市场发展空间,品牌商应该把握住中端市场的机会,进一步巩固自己的市场地位。

②对于中端市场中竞争的各大品牌来说,应该聚焦于消费者最关心的性能,重点打造差异化个性化产品,建立起与其他品牌的竞争优势,为品牌创收并形成品牌标签,增强品牌的传播力度,同时为品牌的升级奠定市场基础和消费心理需求。

③在中端市场中,消费者对品牌的认可度相对来说不高,消费者更加关注产品的性能和价格,对应的应该实施更为多元化的价格策略。

④目前国产品牌在中端市场占有绝对的优势,对于华为来说,高端市场的进入取得了初步的成效,但是仍然需要注意防守中端市场;对于oppo和小米来说,中端市场有一定程度的下降,进入高端市场需要谨慎,不能急于求成,一定要稳固好中端市场;对于vivo来说,在中端市场得到强化的同时,应该逐步打造几款特征鲜明的产品,尝试进入高端市场。

⑤在高端市场,用户的品牌忠诚度非常高,品牌壁垒效应强,不应该在中端市场得不到稳固的情况下贸然进入。

⑥对于已经进入高端市场的品牌来说,需要建立品牌验证机制,同时和子品牌建立一定的品牌隔离,保证高端市场用户的消费体验。

⑦在低端市场中,能够通过打造一些刚需产品,迅速拓展品牌的销量,所以对于其他小品牌来说,品牌的塑造应该从中低端市场切入,在低端市场打造高性价比的刚需产品,扩大品牌受众;在中端市场打造差异化、个性化的产品为品牌创收,强化自己的市场地位。

关键词:挖掘,分析,数据

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭