- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
『数据分析』使用python进行同期群分析
目录:
同期群分析概念
数据读取
分析方向
数据预处理
同期群分析
从留存率角度进行同期群分析
从人均付款金额角度进行同期群分析
从人均购买次数角度进行同期群分析
每月总体付费情况
将结果导出网页或截图
整体完整代码
01
同期群分析概念
同期群(Cohort)的字面意思(有共同特点或举止类同的)一群人,比如不同性别,不同年龄。
在《精益数据分析》中的第2章 创业的记分牌?中介绍了三种分析方法(市场细分、同期群分析以及A/B测试),其中关于同期群分析的讨论可以帮助我们快速了解它的应用场景。
同期群分析:比较的是相似群体随时间的变化。
产品会随着你的开发和测试而不断迭代,这就导致在产品发布第一周就加入的用户和后来才加入的用户有着不同的体验。比如,每个用户都会经历一个生命周期:从免费试用,到付费使用,最后停止使用。同时,在这期间里,你还在不停地对商业模式进行调整。于是,在产品上线第一个月就“吃螃蟹”的用户势必与四个月后才加入的用户有着不同的上手体验。这对用户流失率会有什么影响?我们用同期群分析来寻找答案。
每一组用户构成一个同期群,参与整个试验过程。通过比较不同的同期群,你可以获知:从总体上看,关键指标的表现是否越来越好了。
结合到用户分析层面,比如不同月份获取的用户,不同渠道新增用户,具备不同特征的用户(比如微信里每天至少和10个以上朋友微信的用户)。
同期群分析(Cohort Analysis),将这些具有不同特征的人群进行对比分析,以发现他们在时间维度下的行为差异。
因此,同期群分析主要用于以下2点:
对比 不同 同期群群体同一体验周期的数据指标,验证产品迭代优化的效果对比 同一 同期群群体不同体验周期(生命周期)的数据指标,发现长线体验的问题
我们在进行同期群分析的时候,大致可以划分为2个流程:确定同期群分组逻辑和确定同期群分析的关键数据指标。
关于分组逻辑,需要遵循以下2个准则:
具有相似行为特征的群体具有相同时间周期的群体
例如:
按获客月份(按周甚至按天分组)按获客渠道按照用户完成的特定行为,比如用户访问网站的次数或者购买次数来分类。
关于关键数据指标,需要是基于时间维度下的比如留存、营收、自传播系数等等。
下面是以留存率作为指标的案例示例:
下面是某电商的运营数据,我们将以该数据演示用python进行同期群分析。
同期群分析案例详解
数据是某电商用户付费日志,日志字段包含日期、付费金额和用户id,已脱敏处理。
数据读取
import pandas as pddf = pd.read_csv(日志.csv, encoding=gb18030)df.head()
02
分析方向
分组逻辑:
这里只按照用户的初始购买月份进行分组,如果日志包含的分类字段更多(比如 渠道、性别或者年龄等),可以考虑更多种分组逻辑。
关键数据指标:
针对此份数据,至少有3个数据指标可以进行分析:
留存率人均付款金额人均购买次数
03
数据预处理
因为我们是按照月份进行分组,所以需要先将日期重采样为月份:
df[购买月份] = pd.to_datetime(df.日期).dt.to_period(M)df.head()
计算每个用户在每个月的付费总额:
order = df.groupby([uid, 购买月份], as_index=False).agg( 月付费总额=(付费金额,sum), 月付费次数=(uid,count),)order.head()
计算每个用户的首单购买月份作为同期群分组,并将其对应到原始数据上:
order[首单月份] = order.groupby(uid)[购买月份].transform(min)order.head()
计算每条购买记录的时间与首单购买时间的月份差,并重置月份差标签:
order[标签] = (order.购买月份-order.首单月份).apply(lambda x:同期群人数 if x.n==0 else f+{x.n}月)order.head()
两个月份均为时期类型,相减后得到object类型的列,而该列每个元素的类型是pandas._libs.tslibs.offsets.MonthEnd
MonthEnd类型具有属性n能返回具体差值整数。
04
同期群分析
前面我们说了至少有3个数据指标可以进行分析:
留存率人均付款金额人均购买次数
从留存率角度进行同期群分析
通过数据透视表可以一次性计算所需的数据:
cohort_number = order.pivot_table(index=首单月份, columns=标签, values=uid, aggfunc=count,
文档评论(0)