一、案例数据
在数据运营中,留存率分析和转化率(漏斗)分析是经常用到的,本文结合具体案例总结了如何利用python求n日留存率以及各环节间转化率。
指标释义
案例数据集介绍:
本文是利用淘宝app的运营数据进行分析的,数据集中包含以下字段(部分):
- user_id:用户id
- time:用户行为发生时间
- behavior_type:用户行为类型,具体可分为(1点击、2收藏、3加入购物车以及4支付购买)。
根据time字段可以得到以下特征数据:
- day:用户行为发生日期
- hour:时段
- weekday:周期
二、留存率计算
留存用户:在某段时间开始使用产品,经过一段时间后仍然继续使用产品的用户,即为留存用户。
留存率=仍旧使用产品的用户量/最初的总用户量。
根据时间维度进行分类,留存率经常分为次日留存、3日留存、7日留存以及30日留存等。
程序逻辑:
- 识别出指定日期的新用户集合,记用户量为b
- 得到第n天用户集合
- 识别、计算指定日期新用户在第n天仍使用产品的数量,记用户量为a
- 留存率=a/b
#建立留存函数(里面默认data数据中有day/user_id两个字段数据,day为日期、user_id为用户id)
#导入数据包
import pandas as pd
import numpy as np
from datetime import timedelta
#建立n日留存率计算函数
def cal_retention(data,n): #n为n日留存
user=[]
date=pd.Series(data.day.unique()).sort_values()[:-n] #时间截取至最后一天的前n天
retention_rates=[]
for i in date:</