题解 | #牛客网连续练习题目3天及以上的用户#

牛客网连续练习题目3天及以上的用户

https://www.nowcoder.com/practice/4d77709a0ea2482282ee86852fe32f06

步骤:
1.date转成年月日格式
2.以用户分组按日期排序,为避免用户同一天内多次登录,排名方法选用dense
3.用日期减去排名即可得到连续登录的第一天日期
4.通过对用户、第一天连续登录的日期分组并对数据的记录进行计数即可得到用户持续登录的天数
5.再通过对用户分组,得到用户持续登录的天数的最大值,筛选出大于等于3的用户
nowcoder['date'] = pd.to_datetime(nowcoder['date'],format='%Y-%m-%d').dt.date
nowcoder['ranking'] = nowcoder.groupby('user_id')['date'].rank(method='dense')
nowcoder['first_last_date'] = nowcoder['date'] - pd.to_timedelta(nowcoder['ranking'],unit='d')
df = nowcoder.groupby(['user_id','first_last_date'])['first_last_date'].count().groupby('user_id').max()
df = df[df>=3]
print(df)


全部评论

相关推荐

985柜员:开发还敢还叫,全部让自测就老实了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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