#P1001. Pandas测试
Pandas测试
题目描述
评测环境的当前目录下已预置了一个 Excel 文件 score.xlsx,内容记录了若干同学的成绩。
表格结构如下:
| 学号 | 姓名 | 数学 | 英语 | 科学 |
|---|---|---|---|---|
| 101 | 张三 | 85 | 92 | 78 |
| 102 | 李四 | 55 | 60 | 45 |
| 103 | 王五 | 90 | 88 | 95 |
| 104 | 赵六 | 40 | 70 | 55 |
| 105 | 钱七 | 75 | 80 | 82 |
你需要编写程序完成以下逻辑:
- 读取
score.xlsx文件。 - 新增一列名为 “总分”,数值为 数学、英语、科学 三科成绩之和。
- 筛选出 总分 180 的学生。
- 将筛选后的结果按 “学号” 升序(从小到大)排列。
- 最终输出这些学生的 “姓名” 和 “总分” 列。
输入格式
- 本题没有标准输入。程序运行时请直接读取当前目录下的
score.xlsx文件。
输出格式
- 直接使用
print函数打印筛选并排序后的 DataFrame。
样例
样例输出 1
姓名 总分
0 张三 255
2 王五 273
4 钱七 237
参考通过代码
如果你是第一次使用 Pandas,可以参考以下代码完成提交。
import pandas as pd
# 1. 读取 Excel 文件
df = pd.read_excel("score.xlsx")
# 2. 计算三科总分并创建新列
df['总分'] = df['数学'] + df['英语'] + df['科学']
# 3. 筛选总分大于等于 180 的记录,并按学号排序
res = df[df['总分'] >= 180].sort_values('学号')
# 4. 只输出姓名和总分这两列
print(res[['姓名', '总分']])