列表每一行记录一个学生姓名学号和五个成绩,统计所有学生姓名学号和最高的三次成绩并将结果保存在一个excel文件中
时间: 2023-12-16 17:06:22 浏览: 97
1_lower7y7_定义一个包含学生信息(学号_成绩)的顺序表和链表(二选一)_姓名_使其具有如下功能_
5星 · 资源好评率100%
这个问题需要用到Python的pandas库和openpyxl库。假设列表中的数据已经存储在一个名为“students”的列表中,可以按照以下步骤进行处理:
1. 将“students”列表转换为一个pandas的DataFrame对象。
```python
import pandas as pd
df = pd.DataFrame(students, columns=['name', 'id', 'score1', 'score2', 'score3', 'score4', 'score5'])
```
2. 创建一个新的列,其中包含每个学生的前三个最高成绩。
```python
df['top3'] = df[['score1', 'score2', 'score3', 'score4', 'score5']].apply(lambda x: sorted(x, reverse=True)[:3], axis=1)
```
3. 删除原始成绩列,只保留学生姓名、学号和前三个最高成绩。
```python
df = df[['name', 'id', 'top3']]
```
4. 将结果保存到一个excel文件中。
```python
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# 添加表头
ws.append(['姓名', '学号', '最高三次成绩'])
# 将数据写入表格
for row in df.iterrows():
ws.append(row[1].tolist())
# 保存文件
wb.save('output.xlsx')
```
这样就可以把所有学生姓名、学号和最高的三次成绩保存到一个名为“output.xlsx”的Excel文件中。
阅读全文