2. 本学期开设了Java(Java,Web开发)和Python方向(Python,爬虫技术)的模块课程,已知某宿舍四名同学小明、小王、小李和小赵参加了选课。其中,选择了Java方向课程有小明、小王和小赵,选择了Python方向课程的同学有小明、小李和小赵。参加期末考试以后,Java方向课程的成绩如表4所示,Python方向课程的成绩如表5所示。利用数据合并完成下面任务: a) 统计出既选了Java方向,又选了Python方向课程的同学的所有课程成绩。 b) 统计出选了Java方向课程的同学的所有课程成绩。 c) 统计出选了Python方向课程的同学的所有课程成绩。 d) 统计出小明宿舍同学所有课程的成绩。 表4 Java方向课程的成绩 学号 姓名 Java方向 Web开发 1 小明 80 92 2 小王 90 85 3 小赵 86 83 表5 Python方向课程的成绩 学号 姓名 Python方向 爬虫技术 1 小明 91 88 2 小李 92 90 3 小赵 88 85写出python代码
时间: 2024-03-03 13:47:56 浏览: 91
JAVA、Python学习
下面是解决这个问题的Python代码:
```python
import pandas as pd
# 创建Java方向课程的成绩表
java_scores = pd.DataFrame({
'学号': [1, 2, 3],
'姓名': ['小明', '小王', '小赵'],
'Java方向': [80, 90, 86],
'Web开发': [92, 85, 83]
})
# 创建Python方向课程的成绩表
python_scores = pd.DataFrame({
'学号': [1, 2, 3],
'姓名': ['小明', '小李', '小赵'],
'Python方向': [91, 92, 88],
'爬虫技术': [88, 90, 85]
})
# 合并两个表
merged_scores = pd.merge(java_scores, python_scores, on=['学号', '姓名'])
# 统计选了Java方向和Python方向课程的同学的所有课程成绩
both_courses_scores = merged_scores[(merged_scores['Java方向'].notnull()) & (merged_scores['Python方向'].notnull())]
# 统计选了Java方向课程的同学的所有课程成绩
java_courses_scores = merged_scores[merged_scores['Java方向'].notnull()]
# 统计选了Python方向课程的同学的所有课程成绩
python_courses_scores = merged_scores[merged_scores['Python方向'].notnull()]
# 统计小明宿舍同学所有课程的成绩
xiaoming_scores = merged_scores[merged_scores['姓名'] == '小明']
```
阅读全文