美文网首页
利用Python计算新增用户留存率

利用Python计算新增用户留存率

作者: AlphaGame | 来源:发表于2020-03-24 21:29 被阅读0次

原始数据:创角日志和登录日志

导入需要的库 pandas

import pandas as pd

1、获取数据

#读取创角日志
df_create = pd.read_csv(r'F:\Python\常见统计——留存\创角日志\创角日志.csv')

创角日志
#读取登录日志
df_login = pd.read_csv(r'F:\Python\常见统计——留存\登录日志\登录日志.csv')

登录日志

2、数据预处理

1)修改时间为日期
#去掉app_channel列,并将时间格式改为日期格式
df_create = df_create[['@timestamp','role_id']]
df_create['@timestamp'] = df_create['@timestamp'].str.split(' ').str[0]

修改时间为日期
#去掉app_channel列,并将时间格式改为日期格式
df_login = df_login[['@timestamp','role_id']]
df_login['@timestamp'] = df_login['@timestamp'].str.split(' ').str[0]
#因为用户在同一天存在多条登录日志,这里再进行去重处理
df_login = df_login.drop_duplicates()

去重
2)登录日志与创角日志横向合并
#修改创角日志中时间字段名称为'创角日期’,然后横向合并创角日志和登录日志,使得登录日志基础上相当于新增一列为用户创角日期标记
df_create.rename(columns={'@timestamp':'创角日期'},inplace=True)
df = pd.merge(df_login,df_create)

日志合并
3)新增辅助列记录登录天数
#将日期列改为 日期格式,并新增辅助列用户计算该用户第几天登录
#比如 0天表示 该日期为用户创角日,1天表示该日期为用户第二天登录
df["@timestamp"] = pd.to_datetime(df["@timestamp"])
df["创角日期"] = pd.to_datetime(df["创角日期"])
df['天数'] = df["@timestamp"]-df["创角日期"]

新增辅助列

3、留存率计算

1)使用透视表计算留存数
#使用透视表,计算创角日期对应用户第x天登录的数量(非重复计数)
data = pd.pivot_table(df,values='role_id',index='创角日期',columns='天数',
                      aggfunc=lambda x:len(x.unique()),
                     fill_value='').reset_index()

留存计算

2)修改单元格类型为数值

#将单元格改为数值格式,用于后续计算留存比例
data = data.applymap(lambda x:pd.to_numeric(x,errors='ignore'))

3)留存率计算(两列相除)

#留存率计算
#用 1 days 列 除以  0 days为次日留存率,依次类推
#我们用for循环语句可以实现该算法
create_index = data.columns
df = data.iloc[:,[0,1]]
for i in range(2,8):#这里我们只算到7日留存率
    s= data[create_index[i]]/data[create_index[1]]
    df = pd.concat([df,s],axis=1)

留存率计算

4、索引名称调整并导出数据

#修改结果数据表的列索引名称,然后导出表即可
df.columns=['创角日期','注册玩家数','次日留存率','3日留存率','4日留存率','5日留存率','6日留存率','七日留存率']

列名更换

相关文章

  • 利用Python计算新增用户留存率

    原始数据:创角日志和登录日志 导入需要的库 pandas 1、获取数据 2、数据预处理 1)修改时间为日期 2)登...

  • BI展现模板

    用户相关 *新增用户数或新增激活用户数、累计新增用户数 *登录用户数、用户日活; *用户留存率(次日留存率、七日留...

  • 新增用户留存率

    今天准备OCJ的数据展现时,发现次日留存率给的定义不明确,当日次日留存率=当日次日留存用户数/当日新增用户数。脑袋...

  • 产品不可或缺性调查问卷(产品/市场契合度PMF)

    通常,新增用户留存率是判断产品价值的最重要指标。对高频的社区型产品来讲,是新增用户的次日留存率;对低频的工具型产品...

  • 留存分析

    留存率概念 1、重点关注内容:用户群、付费时间点 2、计算:N日留存率 = 第N天登录用户数/初始用户数 留存三个...

  • 2017.10.26 周留存率

    周留存率(泛指7日留存率)计算,一般就两种:1.第7天的留存用户数/第1天的用户数100%2.7天内的留存用户数/...

  • 如何提升APP的次日留存?

    回答@槟比 : 顾名思义,次日留存率,即相对于前一日的新增用户中,用户留下来的比率,次日留存率体现了用户的质量和产...

  • 为什么要关注留存呢?

    留存可以评估产品功能对用户的黏性。 反映用户留存的指标,用留存率来表示。第1天新增的用户中,在第N天还使用过产品的...

  • 数据分析面经_笔记

    1. 计算用户留存率 题目用户活跃表:dws_user_active_tds bigint comment '日期...

  • 跟小贤学运营第三章:拉新、促活、留存那些事 第二节

    如何做好产品的用户留存 留住基础用户的4种策略 1.留存率分为次日留存率、7日留存率、30日留存率 40-20-1...

网友评论

      本文标题:利用Python计算新增用户留存率

      本文链接:https://www.haomeiwen.com/subject/osnayhtx.html