You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按AppVersion分组计算UserPlayed各关卡的留存率?

按AppVersion分组计算各等级留存率的方法

先确认你的数据结构,首先加载并预处理数据:

import pandas as pd

df = pd.DataFrame({
    'AppVersion':['1.0.20','1.0.20','1.0.20','1.0.20','1.0.20','1.0.22','1.0.22','1.0.22','1.0.22','1.0.22'],
    'Level':['1','2','3','4','5','1','2','3','4','5'],
    'UserPlayed':['7131','6666','6235','5482','4779','12787','12096','11251','9750','8891']
})

# 将UserPlayed转为数值类型,否则无法进行除法计算
df['UserPlayed'] = df['UserPlayed'].astype(int)

接下来按AppVersion分组计算留存率,具体步骤和代码如下:

  • 提取每个版本下Level 1的用户数,作为该版本所有等级留存率的计算分母
  • 对每个分组内的行,Level 1留存率直接设为100%,其他等级用自身UserPlayed除以对应版本的Level 1用户数得到留存率
  • 可选:将留存率转为百分比格式,方便直观查看
# 定义留存率计算函数
def calculate_retention(group):
    # 获取当前版本Level 1的用户数
    level1_users = group[group['Level'] == '1']['UserPlayed'].iloc[0]
    # 计算留存率,Level 1设为1(对应100%)
    group['RetentionRate'] = group['UserPlayed'].apply(lambda x: 1 if x == level1_users else x / level1_users)
    # 转成百分比格式
    group['RetentionRate(%)'] = group['RetentionRate'].apply(lambda x: f"{x*100:.2f}%")
    return group

# 按AppVersion分组并应用计算函数
result_df = df.groupby('AppVersion', group_keys=False).apply(calculate_retention)

# 输出结果
print(result_df)

运行后会得到每个版本下各等级的留存率,比如1.0.20版本的Level 2留存率为6666/7131≈93.48%,Level 3为6235/7131≈87.44%,以此类推。

内容的提问来源于stack exchange,提问作者Danny Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:05:01