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

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

在这里插入图片描述

        python是目前非常火爆的语言,其在人工智能、数据分析领域都占有一席之地,无论是学习还是工作,都会给你带来相当大的帮助。我在这给大家 推荐一个快速提升自己的网站 牛客网,他们现在的IT题库内容很丰富,属于国内做的很好的了,最最最重要的里面的资源全部免费!!!

欢迎大家订阅本专栏进行自助练习

系列专栏链接:

Python快速刷题网站——牛客网 数据分析篇专栏

前言

       相信前两章的学习,大家对 逻辑运算 部分逐渐熟悉,对必要的几个函数的应用已经得心应手,如果还不熟练,请再多多练习掌握,功崇惟志,业广惟勤!今天我们将继续学习 逻辑运算 部分!

统计刷题数量500以上的大佬

       现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
       正在刷题的小白想知道牛客网刷题数量不低于500题的大佬,他们的等级和成就值是怎么样的,你能帮助他吗?
请添加图片描述
输出描述:
输出该数据集中刷题量不低于500对应的等级与成就值这一列的信息,包括列号。Python快速刷题网站——牛客网 数据分析篇(九)_第1张图片

  • 读题找出重点:刷题数量不低于500题他们的等级和成就值->也就代表我们要求出LevelAchievement_value
  • 然后思考会用的函数:loc()/query(),此题依然无法直接使用iloc函数求解,因为从定义上来说,我们无法 根据行号来判断刷题数不低于500

       首当其冲的建表,不过不必浪费大家的时间,我已经给大家建好了:

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','CPP','C','Python'],
})

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

       然后我们先直接判断 >500 的所有数据并打印出来,所需代码如下:

print(data[data.Num_of_exercise>500])

在这里插入图片描述

       接下来我们只需要选出LevelAchievement_value两部分即可,下面代码[['Level', 'Achievement_value']]无论放前面放后面结果都是一样的,但是逻辑上查找顺序是相反的,读者可以思考一下:

# 注意:博主使用jupyter,所以不使用print也可以打印出结果
data[data.Num_of_exercise>=500][['Level', 'Achievement_value']]
data[['Level', 'Achievement_value']][data.Num_of_exercise>=500]

在这里插入图片描述

       同理,用下面这种方式也可以,使用loc函数提取,结果是一毛一样的:

data.loc[data['Num_of_exercise']>500, ['Level', 'Achievement_value']]

在这里插入图片描述
       最后我们使用quary()函数和iloc()函数结合,应该还记得quary()函数的使用方法吧:
注意:在使用quary()函数时若是查找字符串记得将 单引号和双引号 区分开,否则会导致程序将相近的代码引用起来从而导致报错。

data.query("Num_of_exercise>500").iloc[:,1:3]
# data.query("Num_of_exercise>500")[['Level','Achievement_value']]

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


最终代码整理如下:
DA10 统计牛客网刷题数量500以上的大佬

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',')
# 显示pd最大行最大列,若超出不显示的话牛客识别时不会认对答案
pd.set_option('display.width', 300) # 设置字符显示宽度
pd.set_option('display.max_rows', None) # 设置显示最大行
pd.set_option('display.max_columns', None)
# print(Nowcoder[['Level', 'Achievement_value']][Nowcoder.Num_of_exercise>=500])
# print(Nowcoder.loc[Nowcoder['Num_of_exercise']>500, ['Level', 'Achievement_value']])
# print(Nowcoder.query('Num_of_exercise>=500')[['Level','Achievement_value']])
print(Nowcoder.query("Num_of_exercise>=500").iloc[:,1:3])
       暑假已经到末尾,希望大家跟着我完成绕道超车,写代码从来不是一蹴而就的...

你可能感兴趣的:(牛客,数据分析练习之路,python,数据分析,数据挖掘,pandas,开发语言)