题解 | #牛客网用户练习的平均次日留存率#

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

https://www.nowcoder.com/practice/1f9e2b9be96b4b27a2476f8f12c5d29f

# tips:对比使用copy再赋值和直接赋值的区别

# 平均次日留存率=某天练习之后第二天还会回来练习的用户数/全部的用户数

import pandas as pd 
df=pd.read_csv("./nowcoder.csv",sep=",",parse_dates=["date"])
# # 等价于如下两行代码
# df=pd.read_csv("./nowcoder.csv",sep=",")
# df["date"]=pd.to_datetime(df["date"])

df["date"]=df["date"].dt.date    # date项保留年月日信息
# 使用copy函数,保证原始表df不会随着对df1和df2的数据操作而发生改动,防止出现错误
df1=df.copy()
df2=df.copy()
df2["date"]=df1["date"]+pd.Timedelta(1,unit='d')
temp=pd.merge(df1,df2,on=["user_id","date"],how='inner')     # temp表中的数据都是第一天练习之后,第二天还来的

num_still=temp["user_id"].count()
num_all=df1["user_id"].count()
res=round((num_still/num_all),2)
print(res)

全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
03-19 10:38
实力求职者:真的绷不住了,第一张霸总人设,第二张求生欲拉满
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务