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

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

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

#1-读数据
import pandas as pd
nowcoder = pd.read_csv('nowcoder.csv')

#2-分列并取出“日期”
nowcoder['date_2'] = nowcoder['date'].str.split(' ').str[0]
#3-删除原始列
nowcoder = nowcoder.drop(['question_id', 'result', 'date'], axis = 1)
#4-玩家可能一天登录多次,进行去重
nowcoder.drop_duplicates(inplace = True)
#5-转换为时间数据类型
nowcoder['date_2'] = pd.to_datetime(nowcoder['date_2'])
#6-分组排序-按照日期
nowcoder['辅助列'] = nowcoder['date_2'].groupby(nowcoder['user_id']).rank()
#7-计算差值【用户连续登录的情况下,每次相减的结果相同,即'date_sub'相同】---------------------------------重点
nowcoder['date_sub'] = nowcoder['date_2'] - pd.to_timedelta(nowcoder['辅助列'], unit = 'd')
#8-分组统计
data = nowcoder.groupby(['user_id', 'date_sub']).count()
#9-删除其中的一个索引
data = data.reset_index(level = 'date_sub', drop = True)
#10-删除列
data = data.drop('date_2', axis = 1)
#11-筛选
data = data[data['辅助列'] >= 3]
#12-改名
data = data.rename(columns = {'辅助列': 'question_id'})
print(data['question_id'])

全部评论

相关推荐

苍蓝星上艾露:这简历。。。可以试试我写的开源简历优化工具https://github.com/weicanie/prisma-ai
点赞 评论 收藏
分享
昨天 18:35
湖南大学 C++
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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