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())

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

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

最终代码整理如下:

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()))

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

       现有一个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))

Python快速刷题网站——牛客网 数据分析篇(十五)_第1张图片

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

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

最终代码整理如下:

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))

你可能感兴趣的:(牛客,数据分析练习之路,python,数据分析,pandas)