Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩 | 您所在的位置:网站首页 › 如何对数据进行分列排序统计计算题 › Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩 |
文章目录
环境和所需准备代码解读整体代码运行结果
环境和所需准备
执行这个程序需要安装以下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表格的函数,但是并不能够直接像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 实验室设备网 版权所有 |