首页 > 其他分享 >pandas笔记(五)-- 部门工资最高的员工(数据表的合并与分组)

pandas笔记(五)-- 部门工资最高的员工(数据表的合并与分组)

时间:2024-03-27 11:13:00浏览次数:28  
标签:Salary salary merge -- max 数据表 department df pandas

题目描述

输入employee表和department表,查询部门工资最高的员工,按任意顺序返回结果表

测试用例

employee表:

id name salary departmentId
1 Joe 70000 1
2 Jim 90000 1
3 Henry 80000 2
4 Sam 60000 2
5 Max 90000 1

department表:

id name
1 IT
2 Sales

输出:

Employee Salary Department
Jim 90000 IT
Max 90000 IT
Henry 80000 Sales

解析

问题的核心是需要将员工表中的departmentId与部门表中id键相关联,需要用到pandas中的merge函数
关于merge函数的具体定义,可以看这篇博文 https://www.cnblogs.com/guxh/p/9451532.html

思路

使用merge函数合并两张数据表,再根据部门进行分组和筛选即可得到员工数据,这里同样需要注意列的重命名问题
此外,在寻找最大工资时需要使用transform("max")而不是max,这是因为transform返回的是一个与原数据
表长度相同的Series,如果使用max函数将导致后续逻辑索引抛出ValueError

代码

import pandas as pd

def department_highest_salary(employee: pd.DataFrame, department: pd.DataFrame) -> pd.DataFrame:
    df = employee.merge(department, left_on = "departmentId", right_on = "id")
    # merge函数将自动为同名的列添加下标_x和_y来加以区分,需重命名
    df.rename(columns = {"name_x": "Employee", "name_y": "Department", "salary": "Salary"}, inplace = True)
    max_salary = df.groupby("Department")["Salary"].transform("max")
    return df[df["Salary"]==max_salary][["Employee", "Salary", "Department"]]

标签:Salary,salary,merge,--,max,数据表,department,df,pandas
From: https://www.cnblogs.com/KevinScott0582/p/18098390

相关文章

  • Chronos: 将时间序列作为一种语言进行学习
    这是一篇非常有意思的论文,它将时间序列分块并作为语言模型中的一个token来进行学习,并且得到了很好的效果。Chronos是一个对时间序列数据的概率模型进行预训练的框架,它将这些值标记为与基于transformer的模型(如T5)一起使用。模型将序列的值缩放和量化到一个固定的词汇表,并在通过......
  • 铁威马TOS 6.0 Beta全球公测进行中,快来体验一下吧!
    铁威马TOS6.0Beta已经正式上线啦大家体验了吗?今天和大家分享TOS6.0的更新指南01TOS6Beta更新指南为了更好的体验TOS6请细阅以下指南敲重点!本次更新仅适用于TOS5.1.123或以后的版本;如您的设备不符合更新条件,请勿更新!否则,可能会出现系统崩溃。1.适用机型F2-221......
  • SNMP
    SNMPv1SNMP为应用层协议,通过UDP承载,端口号161不可靠,但效率高,网络管理不会太多增加网络负担每个代理进程管理若干被管理对象,并且与某些管理站建立团体管理(明文传输,不安全) SNMP双端口:客户端用端口161接收get/set服务器端口162接收trap 操作编号......
  • jupyter导入数据常见问题
    报错1ModuleNotFoundError:Nomodulenamed'numpy.testing.nosetester'解决方案pipinstallnumpy==1.17.0报错2SyntaxError:(unicodeerror)'unicodeescape'codeccan'tdecodebytesinposition2-3:truncated\UXXXXXXXXescape解决......
  • Unity中如何实现草的LOD
    1)Unity中如何实现草的LOD2)用ComputeShader处理图像数据后在安卓机上不能正常显示渲染纹理3)关于进游戏程序集加载的问题4)预制件编辑模式一直在触发自动保存这是第379篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和......
  • linux修改系统时区
    1、https://wenku.csdn.net/answer/89f4b06ee65511edbcb5fa163eeb3507 root@yao-test:~/testmysqlback#cat/etc/localtimeTZif2UTCTZif2UTCUTC0查看当前时区root@yao-test:~/testmysqlback#timedatectl              Localtime:Wed2024-03-2702:58:44......
  • Spark SQL— Catalyst 优化器
    SparkSQL—Catalyst优化器1.目的本文的目标是描述SparkSQL优化框架以及它如何允许开发人员用很少的代码行表达复杂的查询转换。我们还将描述SparkSQL如何通过大幅提高其查询优化能力来提高查询的执行时间。在本教程中,我们还将介绍什么是优化、为什么使用Catalyst......
  • 字符函数与字符串函数
    欢迎各位来指点我的博客哦!主页:趋早–Step专栏:C语言gitte网站:https://gitee.com/good-thg文章目录一、字符分类函数例题一例题二二、字符转换函数三、字符串函数1.strlen(1)strlen函数的使用(2)strlen函数的模拟实现计数器方式实现递归方式(不创建临时变量)指针-指针......
  • Linux系统安装完成之后如何开启root的ssh登录
    Linux系统安装完成之后如何开启root的ssh登录默认情况下,root用户是没有密码的,而且出于安全考虑,SSH服务不允许root用户直接登录。但在某些情况下,你可能需要以root用户身份通过SSH远程登录服务器,或者为root用户设置密码。修改root用户密码首先,登录到Linux系统。如果你是通......
  • 如何系统得自学python?——11.文件操作
    一、文件操作的作用 ⽂件操作包含:打开、关闭、读、写、复制......⽂件操作的的作⽤是:读取内容、写⼊内容、备份内容......⽂件操作的作⽤就是把⼀些内容(数据)存储存放起来,可以让程序下⼀次执⾏的时候直接使⽤,⽽不必重新制作⼀份,省时省⼒。 二、文件操作方式1.文件操作......