当前位置: 首页 > news >正文

python 数据分析面试题:求分组排第n名的记录数据

近期面试遇到一个面试题,分享给大家。
文中会提供详细的解题思路以及问题延伸

一、面试题

  • 面试题:输出各学科总分第一名的学员姓名、年龄、分数
  • 数据
class_a= {'name': ['学员1', '学员2', '学员3', '学员4','学员5'],'age': [23, 24, 26, 27,25],'course_subject': ['数学', '英语', '语文', '语文','数学'],'score': [100,50,40,30,99]}class_b= {'name': ['学员6', '学员7', '学员8', '学员9'],'age': [23, 24, 26, 27],'course_subject': ['数学', '数学', '语文', '英语'],'score': [18,99,77,30]}

二、解题过程

  • 字典转变为DataFrame,合并,重置索引
df_a = pd.DataFrame(class_a)
df_b = pd.DataFrame(class_b)
df = pd.concat([df_a,df_b])
df.reset_index(drop=True,inplace=True)

在这里插入图片描述

  • groupby分组 + labmda函数 得出结果

df.idxmax() :该函数作用是返回每一列中最大值的索引(所以为什么前文的数据处理中需要重置索引)。

df.groupby('course_subject').apply(lambda x: x.loc[x['score'].idxmax(), ['name', 'age', 'score']])

在这里插入图片描述

延伸:df.idxmin() 取最小

df.nlargest():返回指定列排序后的前 N 个最大值所对应的行。

df.groupby('course_subject').apply(lambda x: x.nlargest(1, 'score'))[['name','age']]

在这里插入图片描述

注意⚠️:遇到相同值的情况,返回结果可能与预期不一致,如原数据中,数学成绩=99的有两位学员,此时当n=2时,只返回其中一位学员的记录;n=3才会返回两位学员的记录数。
所以,如果某一课程中,有两位学员都获得100分,那么此方法并不能解决该面试题。
在这里插入图片描述(n=2)

df.rank():排名函数

df.groupby('course_subject').apply(lambda x:x.loc[x['score'].rank(ascending=False,method='min')==1,['name', 'age', 'score']]
)

在这里插入图片描述
说明method='min'主要是考虑遇到同值的情形,详解参考:python Pandas.rank() 排名函数详解

延伸:该方法可以延伸至求分组排名、分组排第n名的记录数据等问题,是比较完善的答案。

当然,还有其他解决方法,欢迎大家留言补充~

相关文章:

python 数据分析面试题:求分组排第n名的记录数据

近期面试遇到一个面试题,分享给大家。 文中会提供详细的解题思路以及问题延伸 一、面试题 面试题:输出各学科总分第一名的学员姓名、年龄、分数数据: class_a {name: [学员1, 学员2, 学员3, 学员4,学员5],age: [23, 24, 26, 27,25],course…...

eclipse常用快捷键

Eclipse常用快捷键 补全代码的声明:alt /快速修复: ctrl 1批量导包:ctrl shift o使用单行注释:ctrl /使用多行注释: ctrl shift /取消多行注释:ctrl shift \复制指定行的代码:ctrl alt down 或…...

什么是OCR?OCR技术详解

光学字符识别(Optical Character Recognition)简称为“OCR”。ORC是指对包含文本资料的图像文件进行分析识别处理,获取文字及版面信息的技术。 一般包括以下几个过程: 1.图像输入 针对不同格式的图像,有着不同的存储格式和压缩方式。目前&…...

【大模型】开源且可商用的大模型通义千问-7B(Qwen-7B)来了

【大模型】开源且可商用的大模型通义千问-7B(Qwen-7B)来了 新闻通义千问 - 7B 介绍评测表现快速使用环境要求安装相关的依赖库推荐安装flash-attention来提高你的运行效率以及降低显存占用使用 Transformers 运行模型使用 ModelScope 运行模型 量化长文本…...

SQL分类及通用语法数据类型

一、SQL分类 DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)DML: 数据操作语言,用来对数据库表中的数据进行增删改DQL: 数据查询语言,用来查询数据库中表的记录DCL: 数据控制语言,用来创建数据库…...

亿欧智库:2023中国功效型护肤产品成分解析研究报告(附下载

关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 消费端:“纯净美妆〞概念火热,消费驱动因素向成分来源硬核转变 新冠疫情过后,消费者对于生活健康:自然,可持续的关注度持续上升。在消费者…...

Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装

Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署(二)ETCD集群部署 Kubernetes高可用集群二进制部署(三)部署…...

python与深度学习(十二):CNN和猫狗大战二

目录 1. 说明2. 猫狗大战的CNN模型测试2.1 导入相关库2.2 加载模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章猫狗大战训练的模型进行测试。…...

React(1)——快速入门

目录 一、React背景简介 ❤️ 官网和资料 📚 介绍描述 🐧 React的特点 🔨 React高效的原因 🙏🏻 二、React的基本使用 💻 三、React JSX(JSX:JavaScript XML)📦 …...

【论文】【生成对抗网络五】Wasserstein GAN (WGAN)

【题目、作者】: 紫色:要解决的问题或发现的问题 红色:重点内容 棕色:关联知识,名称 绿色:了解内容,说明内容 论文地址: 论文下载 本篇文章仅为原文翻译,仅作参考。…...

学习率Learn_rate是什么(深度学习)

学习率是指在训练神经网络时用于调整参数的步进大小,它决定了每次梯度更新时参数的调整程度。学习率的选择直接关系到模型的性能和训练过程的效果。 学习率变化可能带来的影响: 收敛速度:较高的学习率可以加快模型的收敛速度,因为…...

webpack基础知识五:说说Loader和Plugin的区别?编写Loader,Plugin的思路?

一、区别 前面两节我们有提到Loader与Plugin对应的概念,先来回顾下 loader 是文件加载器,能够加载资源文件,并对这些文件进行一些处理,诸如编译、压缩等,最终一起打包到指定的文件中plugin 赋予了 webpack 各种灵活的…...

AI大模型之花,绽放在鸿蒙沃土

随着生成式AI日益火爆,大语言模型能力引发了越来越多对于智慧语音助手的期待。 我们相信,AI大模型能力加持下的智慧语音助手一定会很快落地,这个预判不仅来自对AI大模型的观察,更来自对鸿蒙的了解。鸿蒙一定会很快升级大模型能力&…...

[JAVAee]锁策略

目录 乐观锁与悲观锁 乐观锁 乐观锁的冲突检测 悲观锁 读锁与写锁 重量级锁与轻量级锁 重量级锁 轻量级锁 自旋锁 公平锁与非公平锁 可重入锁与不可重入锁 乐观锁与悲观锁 乐观锁 在乐观锁中,假设数据并不会发生冲突,在正式提交数据时会对数据进行冲突检测,如果发…...

uni-app-使用tkiTree组件实现树形结构选择

前言 在实际开发中我们经常遇见树结构-比如楼层区域-组织架构-部门岗位-系统类型等情况 往往需要把这个树结构当成条件来查询数据,在PC端可以使用Tree,table,Treeselect等组件展示 在uni-app的内置组件中似乎没有提供这样组件来展示&#x…...

SQL-每日一题【1179. 重新格式化部门表】

题目 部门表 Department: 编写一个 SQL 查询来重新格式化表,使得新的表中有一个部门 id 列和一些对应 每个月 的收入(revenue)列。 查询结果格式如下面的示例所示: 解题思路 1.题目要求我们重新格式化表,…...

GO语言语法结构

GO语言结构 包声明引入包函数变量语句 && 表达式注释 package main import "fmt" func main() {fmt.Println("Hello,World!") } 如这段代码块根据上面的语法结构进行逐行解释 第一行的 package main 是定义一个包名,必须在源文件…...

C++学习——模板

目录 🍉一:什么是模板 🍎二:普通模板的定义 🍍三:类模板的定义 🍌四:模板的实例化 🍇1.当普通模板定义存在可修改返回值产生的分歧 🍈2:类模板实例…...

二叉树的遍历(先序遍历,中序遍历,后序遍历)递归与非递归算法

目录 一、先序遍历题目链接1.递归2.非递归 二、中序遍历题目链接1.递归2.非递归 三、后序遍历题目链接1.递归2.非递归 一、先序遍历 先序遍历:先遍历一颗树的根节点,后遍历左子树,最后遍历右子树 先序遍历序列: 1 -> 2 -> 4…...

【LeetCode】516. 最长回文子序列

文章目录 1. 思路讲解1.1 创建dp表1.2 状态转移方程1.3 不需考虑边界问题 2. 整体代码 1. 思路讲解 1.1 创建dp表 此题采用动态规划的方法,创建一个二维dp表,dp[i][j]表示s[i, j]中最大回文子序列的长度。且我们人为规定 i 是一定小于等于 j 的。 1.2…...

FFmpeg swresample库进阶:除了基础转换,swr_alloc_set_opts2还能这样玩(含滤波器与精度设置)

FFmpeg swresample库进阶:解锁swr_alloc_set_opts2的隐藏潜力 在专业音频处理领域,采样率转换的质量直接影响最终输出的听感表现。许多开发者满足于基础参数配置,却忽略了FFmpeg的swresample库中那些能显著提升音质的"隐藏开关"。本…...

React Native Decompiler:解密打包代码的3个核心优势

React Native Decompiler:解密打包代码的3个核心优势 【免费下载链接】react-native-decompiler Decompile React Native bundles 项目地址: https://gitcode.com/gh_mirrors/rea/react-native-decompiler 你是否曾经面对React Native打包后的代码感到无从下…...

MedGemma-X快速入门:四步开启你的智能影像诊断之旅

MedGemma-X快速入门:四步开启你的智能影像诊断之旅 1. 引言:AI如何改变影像诊断 在繁忙的放射科,医生们每天需要审阅大量影像资料,从X光片到CT扫描,每一张图像背后都关系着患者的健康诊断。传统的工作流程不仅耗时费…...

开源中国全栈式AI教育解决方案:从算力调度到人才培养的闭环实践

在北京教育装备展示会的聚光灯下,开源中国以其教育业务的战略升级成为行业焦点。这家以开发者社区起家的科技企业,正通过构建覆盖K12至高等教育的全学段AI基础设施,重塑教育数字化转型的底层逻辑。其推出的国产化算力异构调度平台、"模力…...

aibiye的AI改写工具为解决论文30%重复率问题,总结出五条实用技巧。包括语义重组、逻辑优化等策略,显著改善文本原创性,助力论文高效通过检测。

嘿,大家好!我是AI菌。今天咱们来聊聊一个让无数学生头疼的问题:论文重复率飙到30%以上怎么办?别慌,我这就分享5个实用降重技巧,帮你一次搞定,轻松压到合格线以下。这些方法都是我亲身试验过的&a…...

如何用10分钟语音数据训练专业级AI变声模型:RVC语音转换终极指南

如何用10分钟语音数据训练专业级AI变声模型&#xff1a;RVC语音转换终极指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voi…...

艾尔登法环调试工具:探索交界地的终极调试指南

艾尔登法环调试工具&#xff1a;探索交界地的终极调试指南 【免费下载链接】Elden-Ring-Debug-Tool Debug tool for Elden Ring modding 项目地址: https://gitcode.com/gh_mirrors/el/Elden-Ring-Debug-Tool 在《艾尔登法环》的广阔世界中&#xff0c;褪色者们常常渴望…...

Deep Sort PyTorch:多目标跟踪的完整实践指南

Deep Sort PyTorch&#xff1a;多目标跟踪的完整实践指南 【免费下载链接】deep_sort_pytorch MOT using deepsort and yolov3 with pytorch 项目地址: https://gitcode.com/gh_mirrors/de/deep_sort_pytorch 想要在视频中实现准确的行人和车辆跟踪吗&#xff1f;Deep …...

点云自监督学习新范式:掩码自编码器(MAE)的架构设计与实战解析

1. 点云自监督学习为何需要MAE&#xff1f; 点云数据在自动驾驶、机器人导航、工业检测等领域越来越重要&#xff0c;但标注成本高得吓人。我去年参与过一个室内场景重建项目&#xff0c;光是标注1000帧点云就花了团队两周时间。这时候自监督学习就成了救命稻草——它能让模型从…...

Kandinsky-5.0-I2V-Lite-5s从零部署:JDK1.8环境下的Java客户端开发

Kandinsky-5.0-I2V-Lite-5s从零部署&#xff1a;JDK1.8环境下的Java客户端开发 1. 引言 还在用JDK1.8开发企业级应用&#xff1f;想集成最新的Kandinsky-5.0-I2V-Lite-5s图像转视频模型却担心兼容性问题&#xff1f;这篇教程就是为你准备的。我们将从零开始&#xff0c;手把手…...