猿创征文|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))

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Love And Program

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值