• Python快速刷题网站——牛客网 数据分析篇(十五)


    👦👦一个帅气的boy,你可以叫我Love And Program
    🖱 ⌨个人主页:Love And Program的个人主页
    💖💖如果对你有帮助的话希望三连💨💨支持一下博主

    前言

    本文将继续学习pandas 中级函数 部分内容

    大佬之间的差距

           现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
    牛客网有很多7级红名大佬,这是众所周知的,但是小白想知道这些大佬的成就值之间有没有什么不同,于是他想从这份文件中输出7级用户中最高成就值与最低成就值之差。
    输入描述:
    数据集直接从当前目录下的Nowcoder.csv文件中读取。
    请添加图片描述

    输出描述:
    直接输出计算结果,为整数。

    • 读题找出重点:7级用户中最高成就值与最低成就值之差
    • 使用max()/min函数计算得出差值(以程序的形式进行加减运算)
    # DA21 大佬用户成就值比例
    import numpy as np
    import pandas as pd
    
    data= pd.DataFrame({
        "Nowcoder_ID":[178372,989717,783650,723570,456568],
        "Level":[7,1,2,6,7],
        "Achievement_value":[8711,13,130,5666,11234],
        "Num_of_exercise":[500,3,32,433,899],
        "Graduate_year":[2017,2016,2010,2019,2017],
        "Language":['CPP','Java',' ','C','Python'],
        "Number_of_submissions":[120,1,2,1,3]
    })
    
    int(data[data['Level']==7]['Achievement_value'].max()-data[data['Level']==7]['Achievement_value'].min())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述
           以上思想是在一列中直接拿到最小值,也可以先找到对应列再取最小值,代码上有细微差距,如下:

    print(max(data[data["Level"]==7]["Achievement_value"])-min(data[data["Level"]==7]["Achievement_value"]))
    
    • 1

    最终代码整理如下:

    DA19 牛客网大佬之间的差距

    import pandas as pd
     
    Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
    print(int(Nowcoder[Nowcoder['Level']==7]['Achievement_value'].max()-Nowcoder[Nowcoder['Level']==7]['Achievement_value'].min()))
    
    • 1
    • 2
    • 3
    • 4

    用户刷题量的方差与提交次数的标准差

           现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
    假如牛牛正在统计用户的刷题情况,需要知道用户刷题量的方差以及提交代码次数的标准差,你能够帮助他吗?

    输入描述:
    数据集直接从当前目录下的Nowcoder.csv文件中读取。
    请添加图片描述

    输出描述:
    直接输出计算的结果,各自保留两位小数,第一行为方差,第二行为标准差。

    • 读题找出重点:用户刷题量的方差、提交代码次数的标准差
    • 使用var()/min函数计算得出方差和标准差

           众所周知,pandas是可以对一列进行共同运算的,以前使用sum()可以,使用max()/min()可以,那同理,方差和标准差也可以

    # DA21 大佬用户成就值比例
    import numpy as np
    import pandas as pd
    
    data= pd.DataFrame({
        "Nowcoder_ID":[178372,989717,783650,723570,456568],
        "Level":[7,1,2,6,7],
        "Achievement_value":[8711,13,130,5666,11234],
        "Num_of_exercise":[500,3,32,433,899],
        "Graduate_year":[2017,2016,2010,2019,2017],
        "Language":['CPP','Java',' ','C','Python'],
        "Number_of_submissions":[120,1,2,1,3]
    })
    
    print(round(data['Num_of_exercise'].var(),2))
    print(round(data['Number_of_submissions'].std(),2))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述

           我们也可以使用pandas中内置的rounds函数,意义也是一样的,如下:

    # 方差
    print(Nowcoder['Num_of_exercise'].var().round(2))
    # 标准差
    print(Nowcoder['Number_of_submissions'].std().round(2))
    
    • 1
    • 2
    • 3
    • 4

    最终代码整理如下:

    DA20 牛客用户刷题量的方差与提交次数的标准差

    import pandas as pd
     
    Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
     # 方差
    print(round(Nowcoder['Num_of_exercise'].var(),2))
    # 标准差
    print(round(Nowcoder['Number_of_submissions'].std(),2))
    # 方差
    print(Nowcoder['Num_of_exercise'].var().round(2))
    # 标准差
    print(Nowcoder['Number_of_submissions'].std().round(2))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    隐私计算从AI到BI:隐语SCQL数据分析引擎上线
    LeetCode 230.二叉搜索树中第K小的元素
    华为HCIE实验题库哪里有?Cloud相关证书咋样?
    PyTorch 之 Dataset 类入门学习
    最新下载:MindMapper 17【软件附加安装教程】
    【leetcode】【剑指offer Ⅱ】035. 最小时间差
    Android Studio开发入门教程:如何让开发的app国际化?
    基于RHEL 8的Linux发行版的初始服务器设置
    👍SpringSecurity单体项目最佳实践
    echarts5.x 词云图使用(`[ECharts] Unkown series wordCloud`)
  • 原文地址:https://blog.csdn.net/qq_43604989/article/details/127322123