• 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)]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

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

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

           用query函数写:

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

    在这里插入图片描述

    最终代码整理如下:
    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)])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    致读者的一段话:

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

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

  • 相关阅读:
    ELK日志收集系统
    kubelet源码分析 添加 pod
    打造高效运营底座,极智嘉一体化软件系统彰显科技威能
    【LeetCode算法系列题解】第41~45题
    Ultra-Light-Fast-Generic-Face-Detector-1MB-master人脸检测算法的复现过程记录
    Go死锁——当Channel遇上Mutex时
    2023福建师范大学计算机考研信息汇总
    SkyWalking安装部署
    【RocketMQ】消息的拉取
    阿里云oss丨You have no right to access this object because of bucket acl.
  • 原文地址:https://blog.csdn.net/qq_43604989/article/details/126395241