Python “多类型 多环节”场景下 漏斗分析的方式

Python “多类型 多环节”场景下 漏斗分析的方式

项目场景:

利用python,对于多个类别的数据,每个类别具有相同的流程,计算其各自转换率并绘图的问题

问题描述:

难点:
1、多个类别需要计算
2、每个类别中有多个流程需要进行计算
3、需要生成一张表
关键点:
1、计算完数据后,为二维表,需要将其转换为一维表才能进行绘图计算

解决方案:

1、数据下钻
2、按照对应的转换率进行计算
3、数据转置
4、生成固定的标签
5、二维数转一维数据 concat

附代码和案例

1、原始数据:需要分别计算新老用户(new_user)的各环节转化率([‘home_page’,‘list_page’,‘product_page’,‘payment_page’,‘paycon_page’])
在这里插入图片描述

#1、数据下钻
user_cr = df.groupby('new_user').agg({'home_page':'sum','list_page':'sum','product_page':'sum','payment_page':'sum','paycon_page':'sum'}).reset_index()

在这里插入图片描述

#2、按照对应流程计算转化率
page_list = ['home_page','list_page','product_page','payment_page','paycon_page']
CR_list = ['CR0','CR1','CR2','CR3']
for i in range(4):
    user_cr[CR_list[i]]= user_cr[page_list[i+1]]/user_cr[page_list[i]]

在这里插入图片描述

#3、数据转置
user_cr1 = user_cr.T.iloc[6:,:].reset_index()

在这里插入图片描述

#4、设置对应的标签
user_cr1['tag1']=pd.Series(['0','0','0','0'])
user_cr1['tag2']=pd.Series(['1','1','1','1'])

在这里插入图片描述

#5、筛选生成对应的子表,并将二维表转化为一维表,利用concat进行拼接
user_cr1_1 = user_cr1[['index',0,'tag1']].rename(columns={0:'CR','tag1':'tag'})
user_cr1_2 = user_cr1[['index',1,'tag2']].rename(columns={1:'CR','tag2':'tag'})
user_cr1_3 = pd.concat([user_cr1_1,user_cr1_2]).sort_values('index').reset_index() # 进行排序和重置序号

在这里插入图片描述

#6、利用seaborn绘图,注意三个参数,x,y和hue(分组)
#绘图
plt.figsize=(10,10)
g = sns.barplot(x='index',y='CR',hue='tag',data=user_cr1_3)
for i,j in user_cr1_3.iterrows():
    g.text(i/2-0.25,j.CR+0.1,round(j.CR,2),ha='center')
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值