• Python每日一练(牛客数据分析篇新题库)——第39天:排序、函数


    1. 牛客网答题正误总数

    描述: 现有牛客网12月每天练习题目的数据集nowcoder.csv。包含如下字段(字段之间用逗号分隔):
    user_id:用户id
    question_id:问题编号
    result:运行结果
    date:练习日期
    请你统计答对和答错的总数分别是多少。

    在这里插入图片描述

    实现代码:

    import pandas as pd
    nowcoder = pd.read_csv('nowcoder.csv')
     
    a=nowcoder.groupby("result")
    print(a.size())
    

    运行结果:

    在这里插入图片描述



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

    描述: 现有牛客网12月每天练习题目的数据集nowcoder.csv。包含如下字段(字段之间用逗号分隔):
    user_id:用户id
    question_id:问题编号
    result:运行结果
    date:练习日期
    请你统计2021年12月连续练习题目3天及以上的所有用户。

    在这里插入图片描述

    实现代码:

    '''
    代码已通过,两个要点:
    1. 先去掉date的时间,再转为日期格式;
    2. 对user_id和答题日期去重。 
    '''
    import pandas as pd
    from datetime import timedelta
    nowcoder = pd.read_csv('nowcoder.csv')
    nowcoder['date'] = pd.to_datetime(nowcoder['date'].str.split(' ', expand=True).iloc[:,0]) # 去掉时间,然后将字符串转为日期格式
    df = nowcoder[nowcoder['date'].dt.strftime("%Y-%m") == '2021-12'][['user_id','date']].drop_duplicates() # 筛选12月的数据,只取user_id和答题日期,并去重
    df['rk'] = pd.to_timedelta(df.groupby(['user_id'])['date'].rank(),unit='d') # 根据user_id分组,并根据答题日期date排序;将排序转为日期差rk,以天为单位
    df['diff'] = df['date']-df['rk'] # 答题日期减去日期差rk,得到diff;同一个用户同一次连续答题,会有一样的diff值
    df1 = df.groupby(['user_id','diff']).count() # 得到每个用户每次连续答题的天数
    df2 = df1.groupby('user_id')['rk'].max() # 取用户最大连续答题天数
    print(df2[df2>=3])
    

    运行结果:

    在这里插入图片描述



    3. 牛客网不同毕业年份的大佬

    描述: 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
    Nowcoder_ID:用户ID
    Name:用户名
    Level:等级
    Achievement_value:成就值
    Num_of_exercise:刷题量
    Graduate_year:毕业年份
    Language:常用语言
    Continuous_check_in_days:最近连续签到天数
    Number_of_submissions:提交代码次数
    Last_submission_time:最后一次提交题目日期
    牛牛想要知道牛客网这些刷题用户,每年毕业生中最高的成就值分别是多少?

    在这里插入图片描述

    实现代码:

    import pandas as pd
     
    Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
     
    a = Nowcoder.groupby("Graduate_year").Achievement_value.max()
    print(a)
    

    运行结果:

    在这里插入图片描述



    4. 不同等级用户语言使用情况

    描述: 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
    Nowcoder_ID:用户ID
    Name:用户名
    Level:等级
    Achievement_value:成就值
    Num_of_exercise:刷题量
    Graduate_year:毕业年份
    Language:常用语言
    Continuous_check_in_days:最近连续签到天数
    Number_of_submissions:提交代码次数
    Last_submission_time:最后一次提交题目日期
    正在牛客网学习编程的小白同学,想要知道牛客网的用户们都使用了哪些语言,尤其是不同等级的用户中各类语言的使用分别有多少人,你能帮助他输出一下吗?

    在这里插入图片描述

    实现代码:

    import pandas as pd
     
    Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
    print(Nowcoder.groupby(['Level','Language']).Nowcoder_ID.count())
    

    运行结果:

    在这里插入图片描述


    《100天精通Python》专栏推荐白嫖80g Python全栈视频

    《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

    • 优点订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)!
    • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
      在这里插入图片描述
      在这里插入图片描述
  • 相关阅读:
    Flask学生信息管理系统,前后端分离(附完整源码+数据库)
    VMware-workstation-full下载
    密码设置十准则
    零点到两点,我部署了一个es
    写一个简易的spring包含ioc和aop功能
    OSPF NSSA区域配置
    PyTorch nn.RNN 参数全解析
    Ubuntu 22.04 安装 Docker Engine
    职场生存--向上管理
    第 12 章 栈与队列
  • 原文地址:https://blog.csdn.net/yuan2019035055/article/details/127096606