Python Pandas 操作 Excel 名册:学号姓名查询、成绩录入和信息补全
使用 Python Pandas 操作 Excel 名册:学号姓名查询、成绩录入和信息补全
本文将介绍使用 Python Pandas 库操作 Excel 名册文件,实现学号或姓名查询、成绩录入和信息补全功能。
代码示例
import pandas as pd
# 读取名册文件
df = pd.read_excel('名册.xls')
# 定义函数,根据学号或姓名查找学生信息
def search_student():
while True:
keyword = input('请输入学号或姓名(输入'q'退出):')
if keyword == 'q':
break
# 判断输入的是学号还是姓名
if keyword.isdigit():
result = df.loc[df['学号'] == int(keyword)]
else:
result = df.loc[df['姓名'].str.contains(keyword)]
# 如果找到了匹配的学生信息
if not result.empty:
print(result[['学号', '姓名']])
# 接收成绩输入
score = input('请输入成绩:')
# 根据序号存放位置
index = result.iloc[0]['序号']
df.loc[df['序号'] == index, '成绩'] = score
# 保存文件
df.to_excel('名册.xls', index=False)
print('成绩已保存!')
break
else:
print('未找到匹配的学生信息,请重新输入。')
# 定义函数,根据学号或姓名补全信息
def complete_info(keyword):
# 判断输入的是学号还是姓名
if keyword.isdigit():
result = df.loc[df['学号'] == int(keyword)]
else:
result = df.loc[df['姓名'].str.contains(keyword)]
# 如果找到了匹配的学生信息
if not result.empty:
print(result[['学号', '姓名']])
# 选择学生
index = input('请输入序号选择学生:')
# 如果输入的是数字
if index.isdigit():
index = int(index) - 1
if index >= 0 and index < len(result):
# 返回选择的学生信息
return result.iloc[index]
# 如果未找到匹配的学生信息,或者选择的序号不合法
print('未找到匹配的学生信息,请重新输入。')
return None
# 主程序
while True:
choice = input('请选择功能:1.输入学号或姓名查询学生信息并录入成绩;2.输入学号或姓名补全信息
')
if choice == '1':
search_student()
elif choice == '2':
keyword = input('请输入不完整的学号或姓名:')
complete_info(keyword)
else:
break
代码解释
- 读取名册文件: 使用
pd.read_excel('名册.xls')读取名为 '名册.xls' 的 Excel 文件,并将数据存储在df数据框中。 - 查找学生信息函数
search_student():- 循环输入学号或姓名,直到用户输入 'q' 退出循环。
- 判断输入的是学号还是姓名,根据输入类型筛选数据框。
- 如果找到匹配的学生信息,输出学号和姓名,接收成绩输入,并将成绩存储到对应序号的 '成绩' 列,最后保存修改后的数据框到 '名册.xls' 文件。
- 如果没有找到匹配的学生信息,输出提示信息。
- 补全信息函数
complete_info(keyword):- 根据输入的学号或姓名筛选数据框。
- 如果找到匹配的学生信息,输出学号和姓名,提示用户输入序号选择学生。
- 如果输入的序号合法,返回选择的学生信息。
- 如果没有找到匹配的学生信息,或者选择的序号不合法,输出提示信息。
- 主程序:
- 提示用户选择功能:查询学生信息并录入成绩或补全信息。
- 根据用户选择调用相应的函数。
- 如果用户输入其他选项,退出程序。
总结
本示例代码演示了如何使用 Python Pandas 库操作 Excel 文件,实现学号或姓名查询、成绩录入和信息补全功能。你可以根据实际需求修改代码,例如添加其他功能或修改文件路径。
原文地址: https://www.cveoy.top/t/topic/nfHu 著作权归作者所有。请勿转载和采集!