- 学习:知识的初次邂逅
- 复习:知识的温故知新
- 练习:知识的实践应用
目录
一,原题力扣链接
二,题干
表:
Project
+-------------+---------+ | Column Name | Type | +-------------+---------+ | project_id | int | | employee_id | int | +-------------+---------+ (project_id, employee_id) 是该表的主键(具有唯一值的列的组合)。 employee_id 是该表的外键(reference 列)。 该表的每一行都表明 employee_id 的雇员正在处理 Project 表中 project_id 的项目。表:
Employee
+------------------+---------+ | Column Name | Type | +------------------+---------+ | employee_id | int | | name | varchar | | experience_years | int | +------------------+---------+ employee_id 是该表的主键(具有唯一值的列)。 该表的每一行都包含一名雇员的信息。编写一个解决方案来报告所有拥有最多员工的 项目。
以 任意顺序 返回结果表。
返回结果格式如下所示。
示例 1:
输入: Project table: +-------------+-------------+ | project_id | employee_id | +-------------+-------------+ | 1 | 1 | | 1 | 2 | | 1 | 3 | | 2 | 1 | | 2 | 4 | +-------------+-------------+ Employee table: +-------------+--------+------------------+ | employee_id | name | experience_years | +-------------+--------+------------------+ | 1 | Khaled | 3 | | 2 | Ali | 2 | | 3 | John | 1 | | 4 | Doe | 2 | +-------------+--------+------------------+ 输出: +-------------+ | project_id | +-------------+ | 1 | +-------------+ 解释: 第一个项目有3名员工,第二个项目有2名员工。
三,建表语句
import pandas as pd
data = [[1, 1], [1, 2], [1, 3], [2, 1], [2, 4]]
project = pd.DataFrame(data, columns=['project_id', 'employee_id']).astype({'project_id':'Int64', 'employee_id':'Int64'})
data = [[1, 'Khaled', 3], [2, 'Ali', 2], [3, 'John', 1], [4, 'Doe', 2]]
employee = pd.DataFrame(data, columns=['employee_id', 'name', 'experience_years']).astype({'employee_id':'Int64', 'name':'object', 'experience_years':'Int64'})
四,分析
第一步:以项目分组,统计项目人数
第二步:求出项目人数的最大值 筛选除 如果统计的项目人数 = 项目人数的最大值
第三步:映射对应的列 然后输出
五,Pandas解答
import pandas as pd
def project_employees_ii(project: pd.DataFrame, employee: pd.DataFrame) -> pd.DataFrame:
df = project.groupby('project_id').count().reset_index()
df1 = df[df['employee_id'] == df['employee_id'].max()]
res = df1['project_id']
res = res.to_frame()
return res
project_employees_ii(project,employee)
六,验证
七,知识点总结
- Pandas中分组聚会的运用 API:groupby ...count
- Pandas中重新生成新的索引运用 API :reset_index()
- Panads中条件过滤的运用
- Padnas中series转为dataframe对象的运用
- Python函数的运用
- 学习:知识的初次邂逅
- 复习:知识的温故知新
- 练习:知识的实践应用