牛客网用户练习的平均次日留存率

问题描述:

现有牛客网12月每天练习题目情况的数据集nowcoder.csv。包含如下字段(字段之间用逗号分隔):

  • user_id:用户id
  • question_id:问题编号
  • result:运行结果
  • date:练习日期

现需要查看用户在某天练习后第二天还会再来练习的留存情况,请计算用户练习的平均次日留存率。

输入描述:

数据集可以直接从当前目录下nowcoder.csv读取。

import sys

for line in sys.stdin:
    a = line.split()
    print(int(a[0]) + int(a[1]))

import pandas as pd
from datetime import timedelta
nowcoder = pd.read_csv('nowcoder.csv')
#日期
nowcoder['date']=pd.to_datetime(nowcoder['date']).dt.date

#去重
nowcoder.drop_duplicates(subset=['user_id','date'],inplace=True)

#merge实现左右连
new_nowcoder=pd.merge(nowcoder,nowcoder,on='user_id',how='inner',suffixes=['_a','_b'])
#on和how的参数都是带引号的,还可以指定相同列的下标,不指定默认是_x,_y

new_nowcoder['diff']=new_nowcoder['date_b']-new_nowcoder['date_a']

#两个时间之差数据类型就是timedelta类型
result=new_nowcoder[new_nowcoder['diff']==timedelta(days=1)]['diff'].count()/new_nowcoder[new_nowcoder['diff']==timedelta(days=0)]['diff'].count()
print(round(result,2))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值