每日一题36:数据分组之科目种类数量

一、每日一题

表: Teacher

复制代码
+-------------+------+
| Column Name | Type |
+-------------+------+
| teacher_id  | int  |
| subject_id  | int  |
| dept_id     | int  |
+-------------+------+
在 SQL 中,(subject_id, dept_id) 是该表的主键。
该表中的每一行都表示带有 teacher_id 的教师在系 dept_id 中教授科目 subject_id。

查询每位老师在大学里教授的科目种类的数量。

任意顺序 返回结果表。

查询结果格式示例如下。

示例 1:

复制代码
输入: 
Teacher 表:
+------------+------------+---------+
| teacher_id | subject_id | dept_id |
+------------+------------+---------+
| 1          | 2          | 3       |
| 1          | 2          | 4       |
| 1          | 3          | 3       |
| 2          | 1          | 1       |
| 2          | 2          | 1       |
| 2          | 3          | 1       |
| 2          | 4          | 1       |
+------------+------------+---------+
输出:  
+------------+-----+
| teacher_id | cnt |
+------------+-----+
| 1          | 2   |
| 2          | 4   |
+------------+-----+
解释: 
教师 1:
  - 他在 3、4 系教科目 2。
  - 他在 3 系教科目 3。
教师 2:
  - 他在 1 系教科目 1。
  - 他在 1 系教科目 2。
  - 他在 1 系教科目 3。
  - 他在 1 系教科目 4。

解答:

python 复制代码
import pandas as pd

# 创建Teacher表的数据
data = {
    'teacher_id': [1, 1, 1, 2, 2, 2, 2],
    'subject_id': [2, 2, 3, 1, 2, 3, 4],
    'dept_id': [3, 4, 3, 1, 1, 1, 1]
}

# 创建DataFrame
df = pd.DataFrame(data)

# 使用drop_duplicates去掉重复的(teacher_id,subject_id)组合
unique_subjects = df[['teacher_id', 'subject_id']].drop_duplicates()

# 分组并统计每个teacher_id教授的unique_subject_id数量
result = unique_subjects.groupby('teacher_id')['subject_id'].count().reset_index()

# 重命名列
result.columns = ['teacher_id', 'cnt']

print(result)

题源:Leetcode

二、总结

drop_duplicates()和groupby()的用法。

2024.6.8

相关推荐
Hello.Reader2 天前
PyFlink 向量化 UDF(Vectorized UDF)Arrow 批传输原理、pandas 标量/聚合函数、配置与内存陷阱、五种写法一网打尽
python·flink·pandas
Hello.Reader2 天前
PyFlink Table API Data Types DataType 是什么、UDF 类型声明怎么写、Python / Pandas 类型映射一文搞懂
python·php·pandas
Hello.Reader2 天前
PyFlink Table API 用户自定义函数(UDF)通用 UDF vs Pandas UDF、打包部署、open 预加载资源、读取作业参数、单元测试
log4j·pandas
海棠AI实验室2 天前
第十六章:小项目 2 CSV → 清洗 → 统计 → 图表 → 报告输出
pandas
逻极2 天前
数据分析项目:Pandas + SQLAlchemy,从数据库到DataFrame的丝滑实战
python·mysql·数据分析·pandas·sqlalchemy
海棠AI实验室3 天前
第十七章 调试与排错:读懂 Traceback 的方法论
python·pandas·调试
kong79069283 天前
Pandas简介
信息可视化·数据分析·pandas
爱喝可乐的老王3 天前
数据分析实践--数据解析购房关键
信息可视化·数据分析·pandas·matplotlib
叫我:松哥3 天前
基于 Flask 的音乐推荐与可视化分析系统,包含用户、创作者、管理员三种角色,集成 ECharts 进行数据可视化,采用混合推荐算法
开发语言·python·信息可视化·flask·echarts·pandas·推荐算法
龙腾AI白云3 天前
10分钟了解向量数据库(3)
pandas·scipy