题解 | #牛客网用户练习的平均次日留存率#
牛客网用户练习的平均次日留存率
https://www.nowcoder.com/practice/1f9e2b9be96b4b27a2476f8f12c5d29f
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))