机器学习与深度学习核心知识点总结

『运筹OR帷幄』整理


AI | 机器学习与深度学习核心知识点总结

编者按:一年一度的剁手节又要来了,你已经在盖楼抢红包准备剁手了吗?看着商品预售页面的原价和折后价确实诱人,可是双11真的比平时便宜吗?下文分析了22家知名美妆品牌在2016年双11前后共10天的商品数据,带你了解打折的套路。

精彩双十一

从2009年至今,双十一购物狂欢节每次都是网民和商家们的狂欢。2018年天猫双十一全天交易额更是达到了惊人的2135亿。但随着天猫商家们的各种套路频出,如先涨价再打折、凑满减、购物津贴等等,网民们购物也越来越理智谨慎。

今天咱们就来研究一个最简单的问题:

「电商在双11真的有打折吗?」

  • 数据源:2016年淘宝双十一美妆商品数据(2016.11.05 - 2016.11.14)
  • 分析工具:python
  • 可视化:bokeh 图表模块
AI | 机器学习与深度学习核心知识点总结

数据源展示

问题01:各个品牌都有多少商品参加了双十一活动?

1、导入模块和数据


# 导入模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# 不发出警告
import warnings
warnings.filterwarnings('ignore')
# 导入notebook绘图模块
from bokeh.io import output_notebook
output_notebook()
# 导入图表绘制、图标展示模块
# 导入ColumnDataSource
from bokeh.plotting import figure,show,output_file
from bokeh.models import ColumnDataSource
# 创建工作路径
import os
os.chdir('C:\\\\Users\\\\zbd\\\\Desktop\\\\taobao\\\\')
# 查看数据, 计算商品总数、品牌总数
df = pd.read_excel('双十一淘宝美妆数据.xlsx',sheet_name=0,header=0,index_col=0)
df_length = len(df)
df_columns = df.columns.tolist()
df.fillna(0,inplace = True) # 填充缺失值
df1 = df.set_index('update_time')
print('数据量为%i条' % len(df1))
print('数据时间周期为:\\n', df1.index.unique())

df.head()


AI | 机器学习与深度学习核心知识点总结

导入数据结果

2、计算商品总数、品牌总数以及双十一当天在售的商品占比情况

按照商品销售节奏分类,我们可以将商品分为7类

  • A. 11.11前后及当天都在售 → 一直在售
  • B. 11.11之后停止销售 → 双十一后停止销售
  • C. 1.11开始销售并当天不停止 → 双十一当天上架并持续在售
  • D. 11.11开始销售且当天停止 → 仅双十一当天有售
  • E. 11.5 - 11.10 → 双十一前停止销售
  • F. 仅11.11当天停止销售 → 仅双十一当天停止销售
  • G. 11.12开始销售 → 双十一后上架
# 日期的处理
df['date'] = pd.to_datetime(df['update_time'], format='%Y/%m/%d')
df['day'] = df.date.dt.day
# 双十一当天在售的商品占比情况
data1 = df[['id','title','brand','day']]
#print(data1.head())
# 筛选数据
d1 = data1[['id','day']].groupby(by = 'id').agg(['min','max'])['day']
# 统计不同商品的销售开始日期、截止日期
id_11 = data1[data1['day']==11]['id'].unique()
d2 = pd.DataFrame({'id':id_11,'双十一当天是否售卖':True})
# 筛选双十一当天售卖的商品id
id_date = pd.merge(d1,d2,left_index=True,right_on='id',how = 'left')
id_date['双十一当天是否售卖'][id_date['双十一当天是否售卖']!=True] = False
#print(id_date.head())
# 合并数据
m = len(data1['id'].unique())
m_11 = len(id_11)
m_11_pre = m_11/m

print('商品总数为%i个\\n-------' % m)
print('双十一当天参与活动的商品总数为%i个,占比为%.2f%%\\n-------' % (m_11,m_11_pre*100))
print('品牌总数为%i个\\n' % len(data1['brand'].unique()),data1['brand'].unique())
# 统计
id_date['type'] = '待分类'
id_date['type'][(id_date['min'] <11)&(id_date['max']>11)] = 'A' # A类:11.11前后及当天都在售 → 一直在售
id_date['type'][(id_date['min'] <11)&(id_date['max']==11)] = 'B' # B类:11.11之后停止销售 → 双十一后停止销售
id_date['type'][(id_date['min'] ==11)&(id_date['max']>11)] = 'C' # C类:11.11开始销售并当天不停止 → 双十一当天上架并持续在售
id_date['type'][(id_date['min'] ==11)&(id_date['max']==11)] = 'D' # D类:11.11开始销售且当天停止 → 仅双十一当天有售
id_date['type'][id_date['双十一当天是否售卖']== False] = 'F' # F类:仅11.11当天停止销售 → 仅双十一当天停止销售
id_date['type'][id_date['max']<11] = 'E' # E类:11.5 - 11.10 → 双十一前停止销售
id_date['type'][id_date['min'] >11] = 'G' # G类:11.11之后开始销售 → 双十一后上架
# 商品销售节奏分类
result1 = id_date['type'].value_counts()
result1 = result1.loc[['A','B','C','D','E','F','G']] # 调整顺序
# 计算不同类别的商品数量
from bokeh.palettes import brewer
colori = brewer['Blues'][7]
# 设置调色盘
plt.axis('equal') # 保证长宽相等
plt.pie(result1,labels = result1.index, autopct='%.2f%%',pctdistance=0.8,labeldistance =1.1,
startangle=90, radius=1.5,counterclock=False, colors = colori)
# 绘制饼图
result1

计算得到商品总数、品牌总数以及双十一当天在售的商品占比情况如下:

AI | 机器学习与深度学习核心知识点总结


AI | 机器学习与深度学习核心知识点总结


双十一美妆商品类型分布饼图

从上图可知,「11.11前后及当天都在售」的商品为51.97%,仅为一半。但

而紧随其后的是「双十一前停止销售」 和「双十一后停止销售」,分别为24.01%和13.08%,合计37.09%,已经超过三分之一了。

所以,「这两类商品为什么不参与双十一?」

3、分析未参与双十一当天活动的商品

未参与双十一当天活动的商品,在双十一之后的去向可分为4类:

  • con1 → 暂时下架(F)
  • con2 → 重新上架(E中部分数据,数据中同一个id可能有不同title,换个马甲重新上架)
  • con3 → 预售(E中部分数据,预售商品的title中包含“预售”二字)
  • con4 → 彻底下架(E中部分数据),可忽略
# 分析未参与双十一当天活动的商品 

id_not11 = id_date[id_date['双十一当天是否售卖']==False] # 筛选出双十一当天没参加活动的产品id
print('双十一当天没参加活动的商品总数为%i个,占比为%.2f%%\\n-------' % (len(id_not11),len(id_not11)/m*100))
print('双十一当天没参加活动的商品销售节奏类别为:\\n',id_not11['type'].value_counts().index.tolist())
print('------')
# 找到未参与双十一当天活动的商品id
df_not11 = id_not11[['id','type']]
data_not11 = pd.merge(df_not11,df,on = 'id', how = 'left')
# 筛选出未参与双十一当天活动商品id对应的原始数据
id_con1 = id_date['id'][id_date['type'] == 'F'].values
# 筛选出con1的商品id
# con1 → 暂时下架(F)
data_con2 = data_not11[['id','title','date']].groupby(by = ['id','title']).count() # 按照id和title分组(找到id和title一对多的情况)
title_count = data_con2.reset_index()['id'].value_counts() # 计算id出现的次数,如果出现次数大于1,则说明该商品是更改了title的
id_con2 = title_count[title_count>1].index
# 筛选出con2的商品id
# con2 → 重新上架(E中部分数据,数据中同一个id可能有不同title,“换个马甲重新上架”)
data_con3 = data_not11[data_not11['title'].str.contains('预售')] # 筛选出title中含有“预售”二字的数据
id_con3 = data_con3['id'].value_counts().index
# 筛选出con3的商品id
# con3 → 预售(E中部分数据,预售商品的title中包含“预售”二字)
print("未参与双十一当天活动的商品中:\\n暂时下架商品的数量为%i个,重新上架商品的数据量为%i个,预售商品的数据量为%i个"

% (len(id_con1), len(id_con2), len(id_con3)))
AI | 机器学习与深度学习核心知识点总结

未参与双十一当天活动的商品

到这里,已经可以发现一点点商家的套路了:

  • 换马甲:可能是为了先涨价再打折,或者重新包装商品
  • 预售:预付定金,绑定用户,双11当天爆发冲量

那么,有哪些商家有这样的小九九?我们继续研究:

「真正参与双十一活动的品牌有哪些?其各个品牌参与双十一活动的商品数量分布是怎样的?」

4、计算各品牌双十一活动的商品情况

真正参加活动的商品 = 双十一当天在售的商品 + 预售商品 (相加后再去重,去掉预售且当天在售的商品)


data_11sale = id_11
#print('双十一当天在售的商品的数量为%i个\\n' % len(data_11sale),data_11sale)
#print('--------')
# 得到“双十一当天在售的商品”id及数量
id_11sale_final = np.hstack((data_11sale,id_con3))
result2_id = pd.DataFrame({'id':id_11sale_final})
print('商品总数为%i个' % m)
print('真正参加活动的商品商品总数为%i个,占比为%.2f%%\\n-------' % (len(result2_id),len(result2_id)/m*100))
#result2['id'].duplicated()
# 得到真正参与双十一活动的商品id
x1 = pd.DataFrame({'id':id_11})
x1_df = pd.merge(x1,df,on = 'id', how = 'left') # 筛选出真正参与活动中,当天在售的商品id对应源数据
brand_11sale = x1_df.groupby('brand')['id'].count()

# 得到不同品牌的当天参与活动商品的数量
x2 = pd.DataFrame({'id':id_con3})
x2_df = pd.merge(x2,df,on = 'id', how = 'left') # 筛选出预售商品中,当天在售的商品id对应源数据
brand_ys = x2_df.groupby('brand')['id'].count()
# 得到不同品牌的预售商品的数量
result2_data = pd.DataFrame({'当天参与活动商品数量':brand_11sale,
'预售商品数量':brand_ys})
result2_data['参与双十一活动商品总数'] = result2_data['当天参与活动商品数量'] + result2_data['预售商品数量']
result2_data.sort_values(by = '参与双十一活动商品总数',inplace = True,ascending = False)
result2_data
AI | 机器学习与深度学习核心知识点总结

各品牌双十一活动的商品情况

可以看出,各品牌都会有预售活动,但各自的商品量级以及预售比例不同。

为了更直观地展示,我们将其绘制成堆积图。

5、制作堆叠图查看各个品牌参与双十一活动的商品数量分布

导入bokeh模块并绘制堆积图


# 导入相关模块
from bokeh.models import HoverTool
from bokeh.core.properties import value
# 设置好参数
lst_brand = result2_data.index.tolist()
lst_type = result2_data.columns.tolist()[:2]
colors = ["#718dbf" ,"#e84d60"]
# 修改数据index和columns名字为英文
result2_data.index.name = 'brand'
result2_data.columns = ['sale_on_11','presell','sum']
# 创建数据
source = ColumnDataSource(data=result2_data)
hover = HoverTool(tooltips=[("品牌", "@brand"),
("双十一当天参与活动的商品数量", "@sale_on_11"),
("预售商品数量", "@presell"),
("参与双十一活动商品总数", "@sum")
]) # 设置标签显示内容

p = figure(x_range=lst_brand, plot_width=900, plot_height=350, title="各个品牌参与双十一活动的商品数量分布",
tools=[hover,'reset,xwheel_zoom,pan,crosshair'])
# 构建绘图空间
p.vbar_stack(lst_type, # 设置堆叠值,这里source中包含了不同年份的值,years变量用于识别不同堆叠层
x='brand', # 设置x坐标
source=source,
width=0.9, color=colors, alpha = 0.8,legend=[value(x) for x in lst_type],
muted_color='black', muted_alpha=0.2
)
# 绘制堆叠图
p.xgrid.grid_line_color = None
p.axis.minor_tick_line_color = None
p.outline_line_color = None
p.legend.location = "top_right"
p.legend.orientation = "horizontal"
p.legend.click_policy="mute"
# 设置其他参数
output_file('project08_pic1_jn.html')
show(p)
AI | 机器学习与深度学习核心知识点总结

各个品牌参与双十一活动的商品数量分布

可以看出,悦诗风吟的商品数量最多,而娇兰的预售比例最大。

我们现在大致了解了各个品牌参与双十一活动的商品数量以及预售比例了。

但参与了活动,就真的是打折了吗?打折力度又如何?

问题02:哪些商品真的在打折呢?

1、针对每个商品,评估其打折的情况

①打折情况评估方法:

  • 真打折:商品的价格在10天内有波动、双11价格为10天内最低价、不存在涨价现象
  • 不打折:商品价格无变化

② 针对每个商品做price字段的value值统计,查看价格是否有波动,可以先用pd.cut将date分为不同周期:'双十一前','双十一当天','双十一后',得到period字段

针对统计出来的结果,如果按照id和price分组仍只有一个唯一值,则说明价格未变,没打折;否则为打折

③ 折扣率 = 双十一当天价格 / 双十一之前价格


data2 = df[['id','title','brand','day','price']]
data2['period'] = pd.cut(data2['day'],[4,10,11,14],labels = ['双十一前','双十一当天','双十一后'])
# 筛选数据
price = data2[['id','price','period']].groupby(['id','price']).min()
price.reset_index(inplace = True)
# 针对每个商品做price字段的value值统计,查看价格是否有波动
id_count = price['id'].value_counts()
id_type1 = id_count[id_count == 1].index
id_type2 = id_count[id_count != 1].index
# 筛选出“不打折”和“真打折”的商品id
n1 = len(id_type1)
n2 = len(id_type2)
# 筛选数据
result3_data1 = data2[['id','price','period','brand']].groupby(['id','period']).min()
result3_data1.reset_index(inplace = True)
# 筛选出商品双十一当天及双十一之前的价格
result3_before11 = result3_data1[result3_data1['period'] == '双十一前']
result3_at11 = result3_data1[result3_data1['period'] == '双十一当天']
result3_data2 = pd.merge(result3_at11,result3_before11,on = 'id')
# 计算折扣率
result3_data2['zkl'] = result3_data2['price_x'] / result3_data2['price_y']
print('共计商品数量为%i个,其中:'%len(id_count))
print('真打折的商品数量为%i个,约占比%.2f%% '% (n2, n2/len(id_count)*100) )
print( '不打折的商品数量为%i个,约占比%.2f%%' % (n1,n1/len(id_count)*100))
print('---------------')
result3_data2
AI | 机器学习与深度学习核心知识点总结

商品的打折情况

由此,可计算出:

共计商品数量为3502个,其中:

  • 真打折的商品数量为866个,约占比24.73%
  • 不打折的商品数量为2636个,约占比75.27%

居然有3/4的商品并没!有!打!折!呵呵哒!

fine,咱们再来看看有打折的商品,其打折力度如何。

2、商品折扣率统计


# 用bokeh绘制折线图:x轴为折扣率,y轴为商品数量占比
bokeh_data = result3_data2[['id','zkl']].dropna()
bokeh_data['zkl_range'] = pd.cut(bokeh_data['zkl'],bins = np.linspace(0,1,21))
bokeh_data['zkl_range'] = bokeh_data['zkl_range'].astype(str)
# 将数据按照折扣率拆分为不同区间,并统计不同1扣率的商品数量
bokeh_data2 = bokeh_data.groupby('zkl_range').count().iloc[:-1] # 这里去掉折扣率在0.95-1之间的数据,该区间内数据zkl大部分为1,不打折
bokeh_data2['zkl_pre'] = bokeh_data2['zkl']/bokeh_data2['zkl'].sum()
bokeh_data2.head()
# 创建数据
source = ColumnDataSource(data=bokeh_data2)
lst_brand = bokeh_data2.index.tolist()
# 构建绘图空间
hover = HoverTool(tooltips=[("商品数", "@zkl")]) # 设置标签显示内容
p = figure(x_range=lst_brand, plot_width=900, plot_height=350, title="商品折扣率统计",
tools=[hover,'reset,xwheel_zoom,pan,crosshair'])
# 绘制折线图
p.line(x='zkl_range',y='zkl_pre',source = source, # 设置x,y值, source → 数据源
line_width=2, line_alpha = 0.8, line_color = 'black',line_dash = [10,4]) # 线型基本设置
p.circle(x='zkl_range',y='zkl_pre',source = source, size = 8,color = 'red',alpha = 0.8)
# 设置其他参数
p.xgrid.grid_line_color = None
p.axis.minor_tick_line_color = None
p.outline_line_color = None
show(p)
AI | 机器学习与深度学习核心知识点总结

商品折扣率统计

由上图,可以简单将打折情况分为4类:

  1. 重在参与:8.5-9折,在图上右侧,是最大波峰。说明此类折扣最为常见,既响应了马云爸爸的号召参与双十一活动,又不至于把价格定得太低造成自身亏损。也有可能是新品,刚上市不会轻易打折。
  2. 有点良心:5.5-8折,其每个小区间的占比在5%波动。比重在参与的折扣力度大些,算是性价比比较高的商品。
  3. 半价优惠:4.5-5折,在图中间,是第二波峰。手慢无系列,往往是限量半价发售,或是第二件半价。但一般为库存商品,或原本就利润空间较大的商品。同时也是为了快速积累店铺人气,搭配满减来带动店铺商品的销量。
  4. 限时秒杀:0.5-4折,在图左侧,数量极其稀少。此类多为低价商品,以秒杀为主,数量及其有限。对于商家来说,也是一种引流手段。当然,抢到就是赚到。

那么,各个品牌商家的商品又属于哪种打折套路呢?

3、按照品牌分析,不同品牌的打折力度

用bokeh绘制浮动散点图:y坐标为品牌类型,x坐标为折扣力度


from bokeh.transform import jitter
# 得到y坐标
brands = result3_data2['brand_y'].dropna().unique().tolist()
# 创建数据
bokeh_data = result3_data2[['id','zkl','brand_y']].dropna()
bokeh_data = bokeh_data[bokeh_data['zkl'] < 0.95]
source = ColumnDataSource(data = bokeh_data)
hover = HoverTool(tooltips=[("折扣率", "@zkl")]) # 设置标签显示内容

p = figure(plot_width=800, plot_height=600,y_range=brands,title="不同品牌折扣率情况",
tools=[hover,'reset,ywheel_zoom,pan,crosshair'])
# jitter参数 → 'day':第一参数,这里指y的值,width:间隔宽度比例,range:分类范围对象,这里和y轴的分类一致
p.circle(x='zkl',
y=jitter('brand_y', width=0.6, range=p.y_range),
source=source, alpha=0.3)
# 设置其他参数
p.ygrid.grid_line_color = None
show(p)
AI | 机器学习与深度学习核心知识点总结

不同品牌折扣率情况

从上图可以发现:

  • 大多品牌有几个数据密集点,集中在5折和8.5折处,与上节的两个波峰对应
  • 不同品牌的营销套路不同,比如:
  • ①佰草集有4个数据密集点,分别为5折、6折、7折、7.5折,同时其他折扣也均有涉猎。所以其策略可能是多点撒网。
  • ②美宝莲和欧莱雅都是集中在低折扣,搭配少量超高折扣,但中间折扣极少。所以其策略可能是以少量超高折扣产品引流,同时大部分产品仅低折扣,维持高端的品牌形象。

为了更深入的解析品牌商家的营销套路,我们可以尝试制作气泡图来分析

问题03:商家营销套路挖掘

1、不同品牌的参与打折商品比例及折扣力度


# 处理数据
data_zk = result3_data2[result3_data2['zkl']<0.95] # 删除未打折数据
# 筛选出不同品牌的折扣率

result4_zkld = data_zk.groupby('brand_y')['zkl'].mean()
# 计算出不同品牌参与打折商品比例
n_dz = data_zk['brand_y'].value_counts()
n_zs = result3_data2['brand_y'].value_counts()
result4_dzspbl = pd.DataFrame({'打折商品数':n_dz,'商品总数':n_zs})
result4_dzspbl['参与打折商品比例'] = result4_dzspbl['打折商品数'] / result4_dzspbl['商品总数']
result4_dzspbl.dropna(inplace = True)
#print(result4_dzspbl)
# 筛选出品牌参加双11活动的商品总数
result4_sum = result2_data.copy()
# 合并数据
result4_data = pd.merge(pd.DataFrame(result4_zkld),result4_dzspbl,left_index = True, right_index = True, how = 'inner')
result4_data = pd.merge(result4_data,result4_sum,left_index = True, right_index = True, how = 'inner')
# 用bokeh绘制散点图
from bokeh.models.annotations import Span # 导入Span模块
from bokeh.models.annotations import Label # 导入Label模块
from bokeh.models.annotations import BoxAnnotation # 导入BoxAnnotation模块
# 创建ColumnDataSource数据
bokeh_data = result4_data[['zkl','sum','参与打折商品比例']]
bokeh_data.columns = ['zkl','amount','pre']
bokeh_data['size'] = bokeh_data['amount'] * 0.03
source = ColumnDataSource(bokeh_data)
x_mean = bokeh_data['pre'].mean()
y_mean = bokeh_data['zkl'].mean()
# 构建绘图空间
hover = HoverTool(tooltips=[("品牌", "@index"),
("折扣率", "@zkl"),
("商品总数", "@amount"),
("参与打折商品比例", "@pre"),
]) # 设置标签显示内容
p = figure(plot_width=600, plot_height=600,
title="各个品牌打折套路解析" ,
tools=[hover,'box_select,reset,wheel_zoom,pan,crosshair'])
# 散点图
p.circle_x(x = 'pre',y = 'zkl',source = source,size = 'size',
fill_color = 'red',line_color = 'black',fill_alpha = 0.6,line_dash = [8,3])
p.ygrid.grid_line_dash = [6, 4]

p.xgrid.grid_line_dash = [6, 4]
# 绘制辅助线
x = Span(location=x_mean, dimension='height', line_color='green',line_alpha = 0.7, line_width=1.5, line_dash = [6,4])
y = Span(location=y_mean, dimension='width', line_color='green',line_alpha = 0.7, line_width=1.5, line_dash = [6,4])
p.add_layout(x)
p.add_layout(y)
# 绘制第一象限
bg1 = BoxAnnotation(bottom=y_mean, right=x_mean,fill_alpha=0.1, fill_color='olive')
label1 = Label(x=0.1, y=0.55,text="少量大打折",text_font_size="10pt" )
p.add_layout(bg1)
p.add_layout(label1)
# 绘制第二象限
bg2 = BoxAnnotation(bottom=y_mean, left=x_mean,fill_alpha=0.1, fill_color='firebrick')
label2 = Label(x=0.1, y=0.55,text="大量大打折",text_font_size="10pt" )
p.add_layout(bg2)
p.add_layout(label2)
# 绘制第三象限
bg3 = BoxAnnotation(top=y_mean, right=x_mean,fill_alpha=0.1, fill_color='firebrick')
label3 = Label(x=0.1, y=0.80,text="少量少打折",text_font_size="10pt" )
p.add_layout(bg3)
p.add_layout(label3)
# 绘制第四象限
bg4 = BoxAnnotation(top=y_mean, left=x_mean,fill_alpha=0.1, fill_color='olive')
label4 = Label(x=0.1, y=0.80,text="大量大打折",text_font_size="10pt" )
p.add_layout(bg4)
p.add_layout(label4)
show(p)
AI | 机器学习与深度学习核心知识点总结

各个品牌打折情况气泡图

x轴为参与打折商品比例,y轴为折扣力度,点的大小代表该品牌参加双11活动的商品总数。

图表分为四个象限:少量大打折、大量大打折、少量少打折、大量大打折。

则由上图可以看出:

  • 少量小打折:包括雅诗兰黛、娇兰、兰蔻、薇姿、玉兰油等共5个品牌。
  • 少量大打折:包括悦诗风吟、兰芝、欧珀莱等3个品牌。该类品牌的打折商品较少,但折扣力度较大。
  • 大量小打折:包括妮维雅、美宝莲、蜜丝佛陀等3个品牌。该类型有半数以上的商品都参与了打折活动,但折扣力度并不大。
  • 大量大打折:包括相宜本草、佰草集、自然堂等三大国产品牌。这些品牌不仅有90%以上的商品参与了折扣活动,而且折扣力度很大。

总结

此次利用2016年淘宝双十一美妆商品数据(2016.11.05 - 2016.11.14)的2.7w条数据,共计22个品牌,商品总数为3502个,得出以下几点结论:

1、参加活动的商品高达3/4,但包含预售商品;且有部分商品存在「换马甲」套路

  • ①其中双十一当天参与活动的商品总数为2335个,占比为66.68%
  • ②而双十一当天没参加活动的商品总数为1167个,占比为33.32%
  • 暂时下架商品的数量为242个
  • 重新上架商品的数据量为110个
  • 预售商品的数据量为453个
  • ③真正参加活动的商品总数为2788个,占比为79.61%
  • 真正参加活动的商品 = 双十一当天在售的商品 + 预售商品 (相加后再去重,去掉预售且当天在售的商品)
  • 悦诗风吟的参与活动商品数量最多,而娇兰的预售比例最大
  • ④套路:
  • 换马甲:重新包装商品,先涨价再打折
  • 预售:预付定金,绑定用户,双11当天爆发冲量

2、高达3/4的商品并没有打折;打折商品中,以8.5折和5折居多

  • ①不打折的商品数量为2636个,约占比75.27%。
  • ②真打折的商品数量为866个,约占比24.73% 。并将其分为4类:
  • 重在参与:8.5-9折,最多。凑热闹,本身薄利或新品上市,打折力度低。
  • 有点良心:5.5-8折,其每个小区间的占比在5%波动。折扣力度一般,性价比较高。
  • 半价优惠:4.5-5折,次多。往往是限量半价发售,或是第二件半价。减库存,让利攒人气,搭配满减来带动店铺商品的销量。
  • 限时秒杀:0.5-4折,极少。以秒杀为主,商家引流手段。用户抢到就是赚到。

3、不同品牌的营销策略不同

按照打折商品数比例和折扣力度将其分为四类:

  • 少量小打折:包括雅诗兰黛、娇兰、兰蔻、薇姿、玉兰油等共5个品牌。
  • 少量大打折:包括悦诗风吟、兰芝、欧珀莱等3个品牌。该类品牌的打折商品较少,但折扣力度较大。
  • 大量小打折:包括妮维雅、美宝莲、蜜丝佛陀等3个品牌。该类型有半数以上的商品都参与了打折活动,但折扣力度并不大。
  • 大量大打折:包括相宜本草、佰草集、自然堂等三大国产品牌。这些品牌不仅有90%以上的商品参与了折扣活动,而且折扣力度很大。


分享到:


相關文章: