Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩 您所在的位置:网站首页 如何对数据进行分列排序统计计算题 Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩

Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩

2023-09-15 09:22| 来源: 网络整理| 查看: 265

文章目录 环境和所需准备代码解读整体代码运行结果

环境和所需准备

执行这个程序需要安装以下python环境 pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

自己先写了个excel的文档,用于测试,内容如下 在这里插入图片描述 注意我标红的地方,可以结合代码看看,这里要记得和代码一致不然会报错,由于每个excel文件可以包含很多工作表,这为了标明我们需要的是哪个工作表

代码解读 def Read_Excel(Excelname,sheet): ''' 作用:读取excel表格 ''' excel = openpyxl.load_workbook(filename=Excelname, read_only=True) # print(excel[sheet]) return excel[sheet]

这是定义了一个用于读取excel表格的函数,但是并不能够直接像excel一样可查看该文件,load_workbook 模块读取 excel 文件中对应的"修改"表中的数据,封装为列表并返回。

# 将该同学所有的成绩列为数组输出 def get_narry(kt,sy,qm): return list(np.array([kt,sy,qm]))

这步主要是为了方便后面直接调用数组(每个同学全部分数的组合体)

# 计算一个分数列的平均分数 def cal_avg(x): n = len(x) sum = 0 for i in range(0,n): # print(x[i]) sum += x[i] # print(sum) return sum/n

这一步很明显求平均分数,也很好理解

# 每位同学考试成绩>70的次数 def totle_times(x): n = len(x) i=0 for i in range(0,n): if x[i]>70: i += 1 return i

这一步是求每位同学考试成绩>70的次数,通过索引值来找值

整体代码 import numpy as np import openpyxl def Read_Excel(Excelname,sheet): ''' 作用:读取excel表格 load_workbook 模块读取 excel 文件中对应的"修改"表中的数据,封装为列表并返回 ''' excel = openpyxl.load_workbook(filename=Excelname, read_only=True) # print(excel[sheet]) return excel[sheet] # 将该同学所有的成绩列为数组输出 def get_narry(kt,sy,qm): return list(np.array([kt,sy,qm])) # 计算一个分数列的平均分数 def cal_avg(x): n = len(x) sum = 0 for i in range(0,n): # print(x[i]) sum += x[i] # print(sum) return sum/n # 每位同学考试成绩>70的次数 def totle_times(x): n = len(x) i=0 for i in range(0,n): if x[i]>70: i += 1 return i def get_Value(wb, tag): ''' 输入:获取相应单元格的数据 wb为表格对象 tag为单元格标签 输出:对应单元格的数据 ''' return wb[tag].value def get_Score(workbook): ''' 输入:包含学生的所有信息 输出:学生成绩数据列表 ''' # 定义存储学生数据列表 students_message = [] # 定义储存学生分数等级的列表 A为优秀 B为良好 C为不及格 minrow = workbook.min_row + 1 maxrow = workbook.max_row + 1 for i in range(minrow,maxrow): name = get_Value(workbook, 'B' + str(i)) Id = get_Value(workbook,'A'+str(i)) time = get_Value(workbook, 'F' + str(i)) first = get_Value(workbook, 'C' + str(i)) second = get_Value(workbook, 'D' + str(i)) third = get_Value(workbook, 'E' + str(i)) n = get_narry(first,second,third) layer = [] for x in range(len(n)): if np.logical_or(n[x] 100): print("the exist score") elif n[x] >= 70: layer.append('A') elif 50


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有