Python教程

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

本文主要是介绍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()

在这里插入图片描述

这篇关于Python “多类型 多环节”场景下 漏斗分析的方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!