首页 > 其他分享 >184. 部门工资最高的员工

184. 部门工资最高的员工

时间:2023-08-13 14:44:19浏览次数:39  
标签:salary pd name 工资 90000 员工 184 Department id

184. 部门工资最高的员工

2023年8月13日14:37:26

184. 部门工资最高的员工

中等

SQL Schema


Pandas Schema


表: Employee

+--------------+---------+
| 列名          | 类型    |
+--------------+---------+
| id           | int     |
| name         | varchar |
| salary       | int     |
| departmentId | int     |
+--------------+---------+
在 SQL 中,id是此表的主键。
departmentId 是 Department 表中 id 的外键(在 Pandas 中称为 join key)。
此表的每一行都表示员工的 id、姓名和工资。它还包含他们所在部门的 id。

表: Department

+-------------+---------+
| 列名         | 类型    |
+-------------+---------+
| id          | int     |
| name        | varchar |
+-------------+---------+
在 SQL 中,id 是此表的主键列。
此表的每一行都表示一个部门的 id 及其名称。

查找出每个部门中薪资最高的员工。
任意顺序 返回结果表。
查询结果格式如下例所示。

示例 1:

输入:
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 |
+----+-------+
输出:
+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT         | Jim      | 90000  |
| Sales      | Henry    | 80000  |
| IT         | Max      | 90000  |
+------------+----------+--------+
解释:Max 和 Jim 在 IT 部门的工资都是最高的,Henry 在销售部的工资最高。

通过次数

179.5K

提交次数

348.9K

通过率

51.5%

答案

import pandas as pd

def department_highest_salary(employee: pd.DataFrame, department: pd.DataFrame) -> pd.DataFrame:
    return pd.merge(employee,department,how='left',left_on='departmentId', right_on='id').groupby("id_y").apply(lambda t: t[t.salary==t.salary.max()])[['name_y','name_x','salary']].rename(columns={"name_y":"Department","name_x":"Employee"})

标签:salary,pd,name,工资,90000,员工,184,Department,id
From: https://www.cnblogs.com/lmq886/p/17626552.html

相关文章

  • Springboot - 员工部门案例
    目录查询全部部门信息查询全部部门信息//知识点1:@RequestMapping(value="/list",method=RequestMethod.GET)等价于:@GetMapping("/list")//知识点2:privatestaticLoggerlogger=LoggerFactory.getLogger(DeptController.class);等价于@Slf4j(lombok.extern.slf......
  • CF1848
    CF1848C看到形如对\(a,b\)进行任意操作,将\(a,b\)替换成\(a,b\)的线性组合,进行到\(0\),显然需要考虑\(\gcd\)但我没考虑\(\gcd\)不变,考虑同时除以\(\gcd\),最后情况必然是\((0,d)\rightarrow(d,d)\rightarrow(d,0)\)长度为三的循环,那么操作到\(0\)的次数模\(3\)......
  • CF1848F
    [CF1848F]VikaandWikishaber题没想出来,紫砂了。这种题的经典方法是考虑贡献,注意到顺着想贡献不容易我们倒过来想,设\(f_{i,j}\)表示\(i\)轮后\(j\)的大小,则\(f_{i,j}=\operatorname{xor}\limits_{k\in[0,i]}\binom{i}{k}\bmod2\\timesa_{(j+k)\bmodn}\)。然后......
  • CodeForces CF1846G 题解
    CodeForcesCF1846G题解CodeForces题目链接洛谷题目链接标准答案是状压之后,转化成Dijkstra算法跑最短路。我这里提供一个不一样的思路。题意简述主人公得了病,有部分类型的症状。所有类型症状共有\(n\)种,用长为\(n\)的01串表示是否有那种症状。共有\(m\)种药,吃......
  • 7-10 计算工资 (15分)
      7-10 计算工资 (15分)7-10 计算工资 (15分)某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新......
  • Codeforces 1843D:Apple Tree
    1843D.AppleTreeDescription:一棵树(\(Tree\)无环无重边)\(n\)个节点,根节点为1(节点编号\(1\)~\(n\)),树上只有2个苹果,每次摇动苹果树时,每个苹果会有如下变化:当前苹果位于节点\(u\):1.若节点\(u\)有子节点,则该苹果移动到此节点(若有多个子节点,则可以到任意一个)。2.......
  • 员工满意度调查问卷----团队管理应该关注员工的这些事宜
    当看到一些不好的代码时,会发现我还算优秀;当看到优秀的代码时,也才意识到持续学习的重要!--buguge......
  • 部门工资最高的员工
     对于这道题,他要求我们查询每个部门的最高薪资,而且还是两个表,先用join将两个表连接起来,on的条件时Employee.departmentId=Department.id,后面再写上where条件,到这里为止,我们查询的是没有经过分组的表,所以就需要进行一个分组,使用groupby对departmentId分组,因为这是在where后面添......
  • 编辑员工_代码开发
          ......
  • 编辑员工_需求分析和设计
         ......