Python读取大量Excel文件并跨文件批量计算平均值
1.Python导入Excel表格数据并以字典dict格式保存2.Python自动批量修改文件名称的方法3.Python修改柱状图边缘柱子与图边界的距离4.Python TensorFlow深度神经网络回归:keras.Sequential5.Python TensorFlow深度学习回归代码:DNNRegressor
6.Python读取大量Excel文件并跨文件批量计算平均值
7.Python绘制神经网络模型图8.随机森林RF模型超参数的优化:Python实现9.Python实现随机森林RF并对比自变量的重要性10.Python实现类别变量的独热编码(One-hot Encoding)11.Python pydot与graphviz库在Anaconda环境的配置12.多变量两两相互关系联合分布图的Python绘制13.基于遗传算法的地图四色原理绘图上色的Python代码14.Python求取文件夹内的文件数量、子文件夹内的文件数量15.机器学习数据顺序随机打乱:Python实现16.Python忽略NoData计算多张遥感影像的像元平均值:whitebox库17.Python ArcPy批量计算多时相遥感影像的各像元平均值18.Python GDAL库在Anaconda环境中的配置19.ArcMap将Python写的代码转为工具箱与自定义工具20.Python ArcPy批量掩膜、重采样大量遥感影像21.Python地理分析库whitebox在Anaconda中的配置22.Python ArcPy批量拼接长时间序列栅格图像23.HDF格式遥感影像批量转为TIFF格式:ArcPy实现24.Python gdal读取MODIS遥感影像并结合质量控制QC波段掩膜数据25.Python批量读取HDF多波段栅格数据并绘制像元直方图26.Python批量绘制遥感影像数据的直方图27.Python arcpy创建栅格、批量拼接栅格28.Python GDAL读取栅格数据并基于质量评估波段QA对指定数据加以筛选掩膜29.Python自动合并Word文件同时添加分页符的方法30.Python核对遥感影像批量下载情况的方法31.小提琴图的绘制方法:Python matplotlib实现32.Anaconda虚拟环境配置Python库与Spyder编译器33.创建Anaconda虚拟Python环境的方法34.ArcPy批量对大量遥感影像相减做差35.Python批量填补遥感影像的无效值NoData36.Python中numpy出现has no attribute '_no_nep50_warning'错误的一个解决方案37.用ArcGIS模型构建器生成、导出Python转换空间坐标系的代码38.基于Python GDAL为长时间序列遥感图像绘制时相变化曲线图39.Anaconda与Python环境在Windows中的部署40.Python实现snap:对齐多张遥感影像的空间范围41.Python基于Excel生成矢量图层及属性表信息:ArcPy42.Python表格处理模块xlrd在Anaconda中的安装43.多次复制Excel符合要求的数据行:Python批量实现44.Python基于Excel数据加以反距离加权空间插值并掩膜图层45.ArcPy自动绘制大量地图并设置地图要素:Python46.Python提取文本文件(.txt)数据的方法47.将大量文件的拓展名中大写字母改为小写:Python实现48.浏览器打开JupyterLab后所有快捷键与窗口按键均失效怎么办?49.Python依据遥感影像的分幅筛选出对应的栅格文件50.Anaconda安装Python的seaborn库51.SMOGN算法Python实现:解决回归分析中的数据不平衡52.Python结合文件名称将多个文件复制到不同路径下53.Python遥感影像叠加分析:基于一景数据提取另一数据54.在Ubuntu系统安装Anaconda及Python55.配置h5py、netCDF4库的方法:Anaconda环境56.核对不同文件夹所含内容的差异并提取缺失内容:Python代码57.tensorflow学习率指数衰减ExponentialDecay的参数介绍与使用方法58.Python按条件筛选、剔除表格数据并绘制剔除前后的直方图59.Python用shp文件裁剪多个遥感影像的方法60.Python的GDAL库绘制多波段、长时序遥感影像时间曲线图61.部署CPU与GPU通用的tensorflow:Anaconda环境62.Python按条件删除Excel表格数据的方法63.用whl文件安装Anaconda中的GDAL64.Python自动复制Excel数据:将各行分别重复指定次数65.Python批量分割Excel后逐行做差、合并文件的方法66.Python将表格文件中某些列的数据整体向上移动一行67.查找大量时序遥感文件缺失、不连贯的成像日期:Python代码68.将NC栅格表示时间维度的数据提取出来的方法69.批量计算遥感影像NDVI:Python代码70.Python随机抽取Excel数据并在处理后整合为一个文件71.Python读取栅格图像并对像元数据处理后导出到表格文件中72.基于高德地图API在Python中实现地图功能的方法73.Python在多个Excel文件中找出缺失数据行数多的文件74.互联网大中小厂实习面经:滴滴、美团、货拉拉、蔚来、信通院等75.Python代码将大量遥感数据的值缩放指定倍数的方法本文介绍基于Python语言,实现对多个不同Excel文件进行数据读取与平均值计算的方法。
首先,让我们来看一下具体需求:目前有一个文件夹,其中存放了大量Excel文件;文件名称是每一位同学的名字,即文件名称没有任何规律。
而每一个文件都是一位同学对全班除了自己之外的其他同学的各项打分,我们以其中一个Excel文件为例来看:
可以看到,全班同学人数(即表格行数)很多、需要打分的项目(即表格列数)有11
个(不算总分);同时,由于不能给自己打分,导致每一份表格中会有一行没有数据。
而我们需要做的,就是求出每一位同学的、11
个打分项目分别的平均分,并存放在一个新的、表头(行头与列头)与大家打分文件一致的总文件中,如下图。其中,每一个格子都代表了这位同学、这一项打分项目在经过班级除其之外的每一位同学打分后计算出的平均值。
可以看到,一个人就需要算11
次平均,更何况一个班会有数十位同学。如果单独用Excel计算,是非常麻烦的。
而借助Python,就会简单很多。具体代码如下。在这里,就不再像平日里机器学习、深度学习代码博客那样,对代码加以逐段、分部分的具体解释了,直接列出全部代码,大家参考注释即可理解。
# -*- coding: utf-8 -*-
"""
Created on Thu Apr 8 16:24:41 2021
@author: fkxxgis
"""
import os
import numpy as np
from openpyxl import load_workbook
file_path='F:/班长/2020-2021综合测评与评奖评优/01_综合测评/地信XXXX班互评打分表/' #这里是每一位同学打分Excel文件存放的路径
output_path='F:/班长/2020-2021综合测评与评奖评优/01_综合测评/地信XXXX班综合素质测评互评打分表.xlsx' #这里是最终结果存放路径,请不要和上述路径一致
first_row=5 #第一个分数所在的行数
first_column=3 #第一个分数所在的列数
all_row=32 #班级同学总数
all_column=11 #需要计算的分数项目个数
all_excel=os.listdir(file_path) #获取打分文件路径下全部Excel文件
file_row=first_row+all_row-1
file_column=first_column+all_column-1
all_mean_score=np.zeros((file_row,file_column),dtype=float) #新建一个二维数组,存放每一位同学、每一项项目的分数平均值
for now_row in range(first_row,file_row+1):
for now_column in range (first_column,file_column+1):
all_score=[]
for excel_num in range(0,len(all_excel)):
now_excel=load_workbook(file_path+all_excel[excel_num]) #打开第一个打分Excel文件
all_sheet=now_excel.get_sheet_names() #获取打分文件的全部Sheet名称
now_sheet=now_excel.get_sheet_by_name(all_sheet[0]) #本文中分数全部存储于第一个Sheet,因此下标为0
single_score=now_sheet.cell(now_row,now_column).value #获取对应单元格数据
if single_score==None: #如果这个单元格为空(也就是自己不给自己打分的那一行)
pass
else:
all_score.append(single_score)
all_mean_score[now_row-1,now_column-1]=np.mean(all_score) #计算全部同学为这一位同学、这一个打分项目所打分数的平均值
output_excel=load_workbook(output_path) #读取结果存放Excel
output_all_sheet=output_excel.get_sheet_names() #这里代码含义同上
output_sheet=output_excel.get_sheet_by_name(output_all_sheet[0])
output_sheet=output_excel.active
for output_now_row in range(first_row,file_row+1):
for output_now_column in range (first_column,file_column+1):
exec("output_sheet.cell(output_now_row,output_now_column).value=all_mean_score[output_now_row-1,output_now_column-1]") #将二维数组中每一位同学、每一项打分项目的最终平均分数写入结果文件的对应位置
output_excel.save(output_path)
至此,大功告成。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)