每日一题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。

解答:

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

相关推荐

  1. 每日36数据分组科目种类数量

    2024-06-08 10:26:03       10 阅读
  2. 每日38数据分组订单最多的客户

    2024-06-08 10:26:03       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 10:26:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 10:26:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 10:26:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 10:26:03       20 阅读

热门阅读

  1. kubernetes之安装ingress-nginx(k8s1.19版本之后)

    2024-06-08 10:26:03       12 阅读
  2. azure cli的安装和使用

    2024-06-08 10:26:03       8 阅读
  3. go语言打印出变量的类型

    2024-06-08 10:26:03       6 阅读
  4. 【自动驾驶】点与向量从ego系转odometry系

    2024-06-08 10:26:03       10 阅读
  5. Github 2024-06-08 开源项目日报Top10

    2024-06-08 10:26:03       8 阅读
  6. 长轮询之websocket

    2024-06-08 10:26:03       9 阅读
  7. langchian_aws模块学习

    2024-06-08 10:26:03       11 阅读