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

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

在这里插入图片描述

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

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

系列专栏链接:

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

前言

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

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

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

  • 读题找出重点:刷题数量不低于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'],
})

在这里插入图片描述

       然后我们先直接判断 >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']]

完美!


最终代码整理如下:
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])
       暑假已经到末尾,希望大家跟着我完成绕道超车,写代码从来不是一蹴而就的...
  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Love And Program

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

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

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

打赏作者

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

抵扣说明:

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

余额充值