Python Pandas 实现期末考试成绩排名:各班级各科前三名
本文将使用 Python 的 Pandas 库,对学生期末考试数据进行处理,以快速找出各班级各科前三名的学生以及他们的成绩。
数据准备
假设我们拥有一个名为 'data.csv' 的文件,其中包含学生的姓名、科目、成绩、班级和学号信息。
代码示例
import pandas as pd
data = pd.read_csv('data.csv')
# 按班级和科目分组,并对每组成绩降序排序
grouped = data.groupby(['班级', '科目']).apply(lambda x: x.sort_values('成绩', ascending=False))
# 输出各班级各科前三名
for i in range(1, 9):
for subject in ['数学', '语文', '历史']:
top3 = grouped.loc[(str(i)+'班', subject)].head(3)
print(f'第{i}班{subject}科目前三名:')
for index, row in top3.iterrows():
print(f' {row['姓名']}:{row['成绩']}')
代码解析
- 导入 Pandas 库: 使用
import pandas as pd导入 Pandas 库。 - 读取数据: 使用
pd.read_csv('data.csv')读取 CSV 文件中的数据。 - 分组和排序: 使用
groupby()函数按班级和科目对数据进行分组,并使用apply()函数对每组数据进行成绩降序排序。 - 获取前三名: 使用
loc[]函数选择指定班级和科目的数据,并使用head(3)函数获取前三名。 - 输出结果: 使用
iterrows()函数遍历每个学生的数据,并输出他们的姓名和成绩。
输出示例
第1班数学科目前三名:
王武:99
李四:99
张三:100
第1班语文科目前三名:
张三:90
王武:92
李四:89
第1班历史科目前三名:
王武:99
张三:95
李四:96
...
总结
本文展示了如何使用 Python Pandas 库高效地处理学生期末考试数据,并快速获取各班级各科前三名学生的姓名和成绩。该代码示例简洁易懂,并提供详细的解析,适合学习数据分析和 Python 编程的读者。
注意: 请根据实际情况修改代码中的文件路径和科目名称。
其他功能
除了获取前三名之外,我们还可以使用 Pandas 进行更多的数据处理操作,例如计算平均成绩、统计各科目成绩分布等。
希望本文能够帮助您更好地理解 Pandas 库在数据处理中的应用。
原文地址: https://www.cveoy.top/t/topic/ozjk 著作权归作者所有。请勿转载和采集!