猿创征文|Python快速刷题网站——牛客网 数据分析篇(十四)
👦👦一个帅气的boy,你可以叫我Love And Program
🖱 ⌨个人主页:Love And Program的个人主页
💖💖如果对你有帮助的话希望三连💨💨支持一下博主
前言
本文将继续学习pandas 中级函数 部分内容
最多的用户等级
现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户ID
Level:等级
Achievement_value:成就值
Num_of_exercise:刷题量
Graduate_year:毕业年份
Language:常用语言
Continuous_check_in_days:最近连续签到天数
Number_of_submissions:提交代码次数
Last_submission_time:最后一次提交题目日期
对于牛客网的等级制度,你很感兴趣,你想知道大部分人都在什么等级,你能找到文件中等级的众数吗?
输出描述:
输出等级列的众数。
- 读题找出重点:文件中等级的众数
- 使用
mode()
函数
所以我们直接使用mode函数
对Level列
求取众数即可,代码如下:
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]
})
data.iloc[:,[1]].mode()
同样也可以先求众数,在找出Level列
,顺序不同而已:
res = data['Level'].mode()
print(pd.DataFrame(res,columns = ['Level']))
最终代码整理如下:
DA17 牛客网最多的用户等级
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
# print(Nowcoder.loc[:,['Level']].mode())
print(Nowcoder.iloc[:,[1]].mode())
# print(Nowcoder[['Level']].mode())
# # 2、先求众数,在新建一个列
# res = Nowcoder['Level'].mode()
# print(pd.DataFrame(res,columns = ['Level']))
用分位数分析用户活动
现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
现要分析牛客网用户的活跃情况,请依次输出用户成就值与最近连续签到天数的四分之一分位数以及刷题量与代码提交次数的四分之三分位数。
输入描述:
数据集直接从当前目录下的Nowcoder.csv文件中读取。
输出描述:
按照上述要求输出分位数,两种之间换行。
- 读题找出重点:用户成就值与最近连续签到天数的四分之一分位数以及刷题量与代码提交次数的四分之三分位数
-
pandas
模块中的分位函数:quantile()函数
(numpy.quantile()
也可以使用)
DataFrame.quantile(q=0.5, axis=0, numeric_only=_NoDefault.no_default, interpolation=‘linear’, method=‘single’)
默认只需要改q即可,对应分位大小:Value between 0 <= q <= 1, the quantile(s) to compute.---->可以是array,也可以是float---->也就是说你可以说输入数组,也可以输入浮点数
不用多说啥,直接分别找出四个字段的四分位点即可,代码如下:
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'],
"Continuous_check_in_days":[1230,10,45,564,1349],
"Number_of_submissions":[120,1,2,1,3]
})
print(data[["Achievement_value", "Continuous_check_in_days"]].quantile(q=0.25))
print(data[["Num_of_exercise", "Number_of_submissions"]].quantile(q=0.75))
最终代码整理如下:
DA18 用分位数分析牛客网用户活动
import pandas as pd
Nowcoder = pd.read_csv("Nowcoder.csv", sep=",")
print(Nowcoder[["Achievement_value", "Continuous_check_in_days"]].quantile(q=0.25))
print(Nowcoder[["Num_of_exercise", "Number_of_submissions"]].quantile(q=0.75))