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

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

在这里插入图片描述

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

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

系列专栏链接:

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

前言

       今天是 逻辑运算 部分最后一讲,他将前面所说的函数和思想都用到了,很值得思考,同时,学完这一部分我们将开始学习pandas库中级函数,常见的就是平均值、众数、中位数、四分位数,这些常见的数学知识,也是比较容易的。

按照毕业年份与使用语言筛选7级用户

       现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
假设2018年毕业的你突发奇想,想要知道牛客网有哪些使用CPP的7级用户,且他们的毕业年份和你不是同年的,请问该怎么筛选?
输入描述:
数据集直接从当前目录下的Nowcoder.csv文件中读取。
请添加图片描述
输出该数据集中满足筛选条件的全部信息,包括列号。请添加图片描述

  • 读题找出重点:使用CPP的7级用户非2018年->也就代表我们在LanguageGraduate_year中筛选。
  • 然后思考会用的函数:依然是loc()/query(),亦或是直接选取三个条件。

       沿用上一章使用过的数据,直接进行筛选,筛选语言选CPP,毕业年份非2018,等级为7的用户,分别用如下三个公式:data['Language']=='CPP')(data['Graduate_year']!=2018)(data['Level']==7),并用 连接,全部代码如下:

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'],
})
data[(data['Language']=='CPP')&(data['Graduate_year']!=2018)&(data['Level']==7)]

在这里插入图片描述
       用loc函数表示:

data.loc[(data['Language']=='CPP')&(data['Graduate_year']!=2018)&(data['Level']==7)]

       用query函数写:

data.query("Language == 'CPP' & Level == 7 & Graduate_year != 2018")

在这里插入图片描述

最终代码整理如下:
DA11 按照毕业年份与使用语言筛选牛客网7级用户

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
pd.set_option('display.width', 300) # 设置字符显示宽度
pd.set_option('display.max_rows', None) # 设置显示最大行
pd.set_option('display.max_columns', None)
# print(Nowcoder[(Nowcoder['Language']=='CPP')&(Nowcoder['Graduate_year']!=2018)&(Nowcoder['Level']==7)])
print(Nowcoder.loc[(Nowcoder.Language=='CPP')&(Nowcoder.Level==7)&(Nowcoder.Graduate_year!=2018)])

致读者的一段话:

       其实很多人都有个疑问,刷题真的有用么?会不会浪费时间?我能给你的答案是:真的很有用!无论你干什么,都是熟能生巧,很多事情你做得多了也就懂得流程了,哪怕你从来没接触过的新知识,但是它属于你平常做的范畴,你在开始之前就已经知道自己该去做什么了。

       拿我自己举例,我今天就可以完全感觉出我的实际运用水平上高一个等级,所以我才在最后说一些我自己的看法。其实原来对这些函数还有些模糊,用着用着里面参数就忘了,我甚至有时候连 data.[data.language>10] 这种基本语法都需要上网查查,我会,但是我写不出来!但是逐渐的,对这种查找具体内容的逻辑已经比前些日子清晰太多了,就像题目开头分析的,一下子我就知道用哪个函数,能用速度快的函数区分,就尽量少用for循环,无论是在工作中,还是在刷题中打磨自己,有那种意识,才能达到自己想要的那个位置。

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Love And Program

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

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

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

打赏作者

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

抵扣说明:

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

余额充值