如何使用Pandas在Python中实现次日及7日用户留存率的全量计算分析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计921个文字,预计阅读时间需要4分钟。
次日留存率并非某天登录的人里第二天还来的比例,而是某天首次登录的用户中,第二天再次活跃的比例。去除首次这个限定,结果会更为保守高估——老用户重复登录会混淆分子。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 先用
df.sort_values(['user_id', 'event_time'])确保每个用户行为按时间排序 - 用
df.groupby('user_id')['event_time'].min()提取每个用户的first_login_date - 把
first_login_date合并回原表,作为后续分组依据 - 别直接对原始登录日分组——那算的是“当日登录用户留存”,不是“新用户留存”
计算次日/7日是否活跃:用 pd.to_datetime 对齐日期再做差值比较
直接用字符串比日期、或没统一时区/格式就减时间戳,容易因精度丢失(比如 '2024-01-01 23:59:59' 和 '2024-01-02 00:00:01' 被判为跨2天)导致漏计。
本文共计921个文字,预计阅读时间需要4分钟。
次日留存率并非某天登录的人里第二天还来的比例,而是某天首次登录的用户中,第二天再次活跃的比例。去除首次这个限定,结果会更为保守高估——老用户重复登录会混淆分子。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 先用
df.sort_values(['user_id', 'event_time'])确保每个用户行为按时间排序 - 用
df.groupby('user_id')['event_time'].min()提取每个用户的first_login_date - 把
first_login_date合并回原表,作为后续分组依据 - 别直接对原始登录日分组——那算的是“当日登录用户留存”,不是“新用户留存”
计算次日/7日是否活跃:用 pd.to_datetime 对齐日期再做差值比较
直接用字符串比日期、或没统一时区/格式就减时间戳,容易因精度丢失(比如 '2024-01-01 23:59:59' 和 '2024-01-02 00:00:01' 被判为跨2天)导致漏计。

