首页 > 其他分享 >AARRR:2.3

AARRR:2.3

时间:2022-08-27 21:48:34浏览次数:47  
标签:留存 df AARRR new2 user 2.3 new id

1.留存指标

新用户的留存和所有用户留存不太一样

方法一:python

import pandas as pd
df=pd.read_csv('user_behavior.csv')
df=df[['user_id','timestamps']]
df['timestamps']=pd.to_datetime(df['timestamps'],unit='s')

 

df['date']=df['timestamps'].dt.strftime('%Y-%m-%d').astype('datetime64[ns]')

 

new=pd.merge(df,df,on='user_id',how='left')
new=new[['user_id','date_x','date_y']]
new['diff']=(new['date_y']-new['date_x']).dt.days

 

new=new.drop_duplicates()
new=new[(new['diff']==0)|(new['diff']==1)|(new['diff']==3)|(new['diff']==7)]

 

df_new=new.pivot_table(index='date_x',columns='diff',values='user_id',aggfunc='count').reset_index().fillna(0)
df_new.columns=['date','当日活跃数','次日留存数','三日留存数','七日留存数']
df_new['次日留存率']=(df_new['次日留存数']/df_new['当日活跃数']).apply(lambda x: format(x,'.2%'))
df_new['三日留存率']=(df_new['三日留存数']/df_new['当日活跃数']).apply(lambda x: format(x,'.2%'))
df_new['七日留存率']=(df_new['七日留存数']/df_new['当日活跃数']).apply(lambda x: format(x,'.2%'))

 

 或者先去重在连接,而不是先连接在去重:

df1=df.drop_duplicates(subset=['user_id','date'])

new2=pd.merge(df1,df1,on='user_id',how='left')
new2=new2[['user_id','date_x','date_y']]
new2['diff']=(new2['date_y']-new2['date_x']).dt.days

new2=new2[(new2['diff']==0)|(new2['diff']==1)|(new2['diff']==3)|(new2['diff']==7)]

df_new2=new2.pivot_table(index='date_x',columns='diff',values='user_id',aggfunc='count').reset_index().fillna(0)
df_new2.columns=['date','当日活跃数','次日留存数','三日留存数','七日留存数']
df_new2['次日留存率']=(df_new2['次日留存数']/df_new2['当日活跃数']).apply(lambda x: format(x,'.2%'))
df_new2['三日留存率']=(df_new2['三日留存数']/df_new2['当日活跃数']).apply(lambda x: format(x,'.2%'))
df_new2['七日留存率']=(df_new2['七日留存数']/df_new2['当日活跃数']).apply(lambda x: format(x,'.2%'))

 

 或者这样去重:

data = pd.pivot_table(new3,values='user_id',index='date_x',columns='diff',
aggfunc=lambda x:len(x.unique()),
fill_value='').reset_index()

 

 方法二:mysql

先连接再去重比较慢,python 还能做,但是mysql运行很久

select distinct user_id, date1 
from userbehavior

 

 select * from
(select distinct user_id, date1 
from userbehavior
) a
left join
(select distinct user_id, date1 
from userbehavior
) b
on a.user_id = b.user_id

 

 作差就能得到相差的天数:

select 日期1,count(distinct user_id),
sum(case when 天数=1 then 1 else 0 end) as '次日留存数',
sum(case when 天数=3 then 1 else 0 end) as '3日留存数',
sum(case when 天数=7 then 1 else 0 end) as '7日留存数',
sum(case when 天数=1 then 1 else 0 end)/count( user_id) as '次日留存率',

sum(case when 天数=3 then 1 else 0 end)/count( user_id) as '3日留存率',

sum(case when 天数=7 then 1 else 0 end)/count( user_id) as '7日留存率'
from
  ( select a.user_id,a.date1 as '日期1',b.date1 as '日期2',datediff(b.date1,a.date1) as '天数' from
  (select user_id, date1
  from userbehavior
  group by user_id, date1
  order by date1
  ) a
left join
  (select user_id, date1
  from userbehavior
  group by user_id, date1
  order by date1
  ) b
on a.user_id = b.user_id
) c
#where 日期1 >= '2017-11-24' and 日期1 <= '2017-12-04'
group by 日期1

 

 但是得到的活跃度指标比python 少了一部分,为啥?先连接没法计算,大约1000万条数据。

 

标签:留存,df,AARRR,new2,user,2.3,new,id
From: https://www.cnblogs.com/djbwxh/p/16631566.html

相关文章

  • 2022.35 物联网安全
    从物联网的分层架构看,在每一层中都有不同的安全风险威胁,针对这些风险威胁,应用、平台、网络与终端分别有不同的安全需求。因此,物联网的安全应包括“感知安全”、“网络安全......
  • 配置参考 · ThinkPHP3.2.3完全开发手册 · 看云
    配置参考·ThinkPHP3.2.3完全开发手册·看云 https://www.kancloud.cn/manual/thinkphp/1888惯例配置应用设定'APP_USE_NAMESPACE'=>true,//应用类库......
  • AARRR:2.2
    1.计算活跃指标每日pv,uvPageView(页面访问量)又叫做页面浏览量、点击量。通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。用户每打开一个网站页面就被记......
  • AARRR:2.1
    一点一点学:学习来源:https://zhuanlan.zhihu.com/p/285676746数据来源:https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1 先从1亿数据中选择10万数......
  • 老梗新玩「GitHub 热点速览 v.22.34」
    作者:HelloGitHub-小鱼干不知道你是否和我有一样的烦恼,最近的流行梗当自己要用拿来造词时,就陷入了不知道咋“换壳”的尴尬地步。sao-gen-gen大大减少了你老梗新用的脑力......
  • 黑群晖升级6.2-6.2.3-6.2.3UP3
    目前配置(E3-1265L+2根HP原厂8G内存组成16G内存+4G优盘+SATA5盘位SSD-256G+4T*2块+2T*2块;启动盘4G优盘)4G优盘,安装HPE定制版Esxi6.5U3,通过安装补丁包升级到Exsi6.7.0Update......
  • 2022.34 物联网协议
    物联网的发展离不开互联网,但由于物联网场景复杂多样,设备端硬件规格、网络稳定性、流量限制、功耗等因素造成物联网设备的消息传递与传统互联网场景有着很大不同,也因此产生......
  • 听,引擎的声音「GitHub 热点速览 v.22.33」
    这期的热点速览异常Cool,因为有呜呜声内燃机引擎加成的engine-simengine-sim坐镇,听到如此曼妙的引擎声,相比你的人生也在高速上升吧。还有,自己搭建个服务就能在本地用上......