【python数据分析实战】电商打折套路解析(4)—— 商家营销套路挖掘?

1. 指标选取

假使是从下面三个方面进行商家营销套路评价的

     ① 不同品牌参加双11活动的商品总数

     ② 不同品牌的商品折扣率

     ③ 不同品牌打折商品比例

其中第一个指标已经在之前的操作中获得了,接下来就是获取后面的两个指标,最后将这三个指标进行汇总即可

2. 筛选出不同品牌的折扣率

数据还是基于之前处理过的数据,这里进行数据提取和分组,因为同一品牌存在多个商品,所以折扣力度这里以均值来代替

data_zk = result3_data2[result3_data2['zkl']<0.95]  # 删除未打折数据
result4_zkld = data_zk.groupby('店名_y')['zkl'].mean()

–> 输出结果为:
在这里插入图片描述

3. 不同商家打折商品比例

1) 确定打折商品数量

n_dz = data_zk['店名_y'].value_counts()

2) 确定商品总数

n_zs = result3_data2['店名_y'].value_counts()

3) 创建DataFrame数据,保存上面的内容

result4_dzspbl = pd.DataFrame({'打折商品数':n_dz,'商品总数':n_zs})

4) 计算打折比例,并去除空值

result4_dzspbl['参与打折商品比例'] = result4_dzspbl['打折商品数'] / result4_dzspbl['商品总数']
result4_dzspbl.dropna(inplace = True)

–> 输出结果为:
在这里插入图片描述

4. 指标合并

采用pd.merge方法进行DataFrame数据的两两合并,这里为了保证result2_data数据的完备性,进行复制一份,再进行数据的处理

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'
						) #包含指标①②③数据

–> 输出结果为:(注意理解商品总数和sum字段的数据,其中sum代表的是不同品牌参加双11活动的商品总数;商品总数字段数据代表的是打折0-0.95区间内的商品总数,根据之前的分析也可知道还有四分之三的商品没有打折,而且再加上预售的商品,所以这两个数据之间的差距会有点大)
在这里插入图片描述

5. 制图数据筛选

选取上图中的’zkl’、‘参与打折商品比例’、'sum’三个字段的数据,制图前需要把名称修改为英文(标题重命名)、然后设定散点图的大小(0.03的值是试出来的,对于标记的大小根据数据而定没有固定的值),并配置要参考线

bokeh_data = result4_data[['zkl','sum','参与打折商品比例']]
bokeh_data.columns = ['zkl','amount','pre']
bokeh_data['size'] = bokeh_data['amount'] * 0.03

x_mean = bokeh_data['pre'].mean()
y_mean = bokeh_data['zkl'].mean()

source = ColumnDataSource(bokeh_data)
6. bokeh制图

将商家营销套路分为四大类:

     ① 少量大打折
     ② 大量大打折
     ③ 少量少打折
     ④ 少量大打折

也就是根据数据划分四个象限,每个象限就对应一类

from bokeh.models.annotations import Span            
from bokeh.models.annotations import Label           
from bokeh.models.annotations import BoxAnnotation 

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.7, 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.7, y=0.80,text="少量大打折",text_font_size="10pt" )
p.add_layout(bg4)
p.add_layout(label4)
# 绘制第四象限

show(p)

–> 输出结果为:
在这里插入图片描述

7. 小结

少量少打折:包括雅诗兰黛、娇兰、兰蔻、薇姿、玉兰油等共5个品牌。

少量大打折:包括悦诗风吟、兰芝、欧珀莱等3个品牌。该类品牌的打折商品较少,但折扣力度较大。

大量小打折:包括妮维雅、美宝莲、蜜丝佛陀等3个品牌。该类型有半数以上的商品都参与了打折活动,但折扣力度并不大。

大量大打折:包括相宜本草、佰草集、自然堂等三大国产品牌。这些品牌不仅有90%以上的商品参与了折扣活动,而且折扣力度很大

原创文章 159 获赞 93 访问量 4万+

猜你喜欢

转载自blog.csdn.net/lys_828/article/details/104953586