Python “多类型 多环节”场景下 漏斗分析的方式
2022/2/21 9:30:52
本文主要是介绍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 “多类型 多环节”场景下 漏斗分析的方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享