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

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

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

import sys
import pandas as pd 
from datetime import timedelta
# fm=pd.read_csv('nowcoder.csv')
# fm=fm[['user_id','date']].sort_values(by=['user_id','date'])
# fm.date=pd.to_datetime(fm.date).dt.date
nowcoder = pd.read_csv('nowcoder.csv')
nowcoder=nowcoder[['user_id','date']]
nowcoder.user_id=nowcoder.user_id.astype('int')
# lt=[3270, 3344, 3415, 3516, 3617, 3689, 3712, 3745, 3760, 3760, 3881, 3890]
# nowcoder=nowcoder[nowcoder.user_id==3760]
# print(nowcoder.sort_values(by=['user_id','date']))
# pd.set_option('display.max_columns',None)
# pd.set_option('display.max_rows',None)
# print('================')#how=连接方式 默认全连接 这里两张表都一样 选什么都一个效果
df = pd.merge(nowcoder,nowcoder,on='user_id',how='right',suffixes=['_a','_b'])
# print(df.shape[0])
# print(df)
df.date_a = pd.to_datetime(df.date_a).dt.date
df.date_b = pd.to_datetime(df.date_b).dt.date
df = df[(df.date_a+timedelta(days=1))==df.date_b]
all_num = nowcoder.user_id.count()
again_num = df.user_id.count()
# print(df)
# print(df.user_id)
# print(all_num)
# print(again_num)
print(round(again_num/all_num,2))
# #题目要求
# #[3270, 3344, 3415, 3516, 3617, 3689, 3712, 3745, 3760, 3760, 3881, 3890] len=12 3760为重复项
# #去重
# #[3270, 3344, 3415, 3516, 3617, 3689, 3712, 3745, 3760, 3881, 3890] len=11
# user_list=[]
# for i in range(0,fm.shape[0]-1):
#     if (fm.iloc[i,0]==fm.iloc[i+1,0]) and \
#     ((fm.iloc[i,1]+pd.Timedelta(days=1)==fm.iloc[i+1,1]) o r\
#     (fm.iloc[i,0] in user_list)):#去重可删 有被题目要求气到
#         user_list.append(fm.iloc[i+1,0])
# r=(len((user_list)))/len((fm.user_id))#id去重就加上set或者用count()
# print(round(r,2))
for line in sys.stdin:
    a = line.split()
    print(int(a[0]) + int(a[1]))

全部评论

相关推荐

八股刚起步,看了javaguide,小林coding,还有面渣,感觉面渣是体验最好的,请问只看面渣够用吗,有不完善的需要补吗?
码农索隆:先背最基础的知识,然后理解情景题,现在面试大多数喜欢问情景题,更考验面试者的基础和临场发挥情况
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
07-03 16:02
门头沟学院 Java
今天面试,非常紧张,面试官问我springboot有哪些核心模块都答不上来了,真的对自己无语了!
程序员小白条:28届我勒个去,很多人面试都没机会
查看1道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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