Python自动计算Excel数据指定范围内的区间最大值

news2024/11/16 11:54:10

  本文介绍基于Python语言,基于Excel表格文件内某一列的数据,计算这一列数据在每一个指定数量的行的范围内(例如每一个4行的范围内)的区间最大值的方法。

  已知我们现有一个.csv格式的Excel表格文件,其中有一列数据,我们希望对其加以区间最大值的计算——即从这一列的数据部分(也就是不包括列名的部分)开始,第1行到第4行之间的最大值、第5行到第8行的最大值、第9行到第12行的最大值等等,加以分别计算每4行中的最大值;此外,如果这一列数据的个数不能被4整除,那么到最后还剩余几个,那就对这几个加以最大值的求取即可。

  明确了需求,我们即可开始代码的撰写;具体如下所示。

# -*- coding: utf-8 -*-
"""
Created on Wed Jul 26 12:24:58 2023

@author: fkxxgis
"""

import pandas as pd

def calculate_max_every_eight_rows(excel_file, column_name):
    df = pd.read_csv(excel_file)
    column_data = df[column_name]
    max_values = []
    for i in range(0, len(column_data), 4):
        max_values.append(column_data[i:i+4].max())
    return max_values

excel_file = r"C:\Users\15922\Desktop\data_table_1.csv"
column_name = 'NDVI'
result = calculate_max_every_eight_rows(excel_file, column_name)
rdf = pd.DataFrame(result, columns = ["Max"])
output_file = r"C:\Users\15922\Desktop\data.csv"
rdf.to_csv(output_file, index = False)

  在这里,我们定义一个函数calculate_max_every_eight_rows(因为一开始我为了计算8个数据的区间最大值,所有函数名称是eight,大家理解即可),接受两个参数,分别为输入文件路径excel_file,以及要计算区间最大值对应的那一列的列名column_name

  在函数中,我们首先读取文件,将数据保存到df中;接下来,我们从中获取指定列column_name的数据,并创建一个空列表max_values,用于保存每个分组的最大值。随后,使用range函数生成从0开始,步长为4的索引序列,以便按每4行进行分组;这里大家按照实际的需求加以修改即可。在每个分组内,我们从column_data中取出这对应的4行数据,并计算该分组内的最大值,将最大值添加到max_values列表中。最后,函数返回保存了每个分组最大值的列表max_values

  其次,我们通过excel_file指定输入的文件路径,通过column_name指定要处理的列名,随后即可调用calculate_max_every_eight_rows函数,并将返回的结果保存到result变量中,该结果是一个包含了每个分组最大值的列表。

  随后,我们为了将最大值结果保存,因此选择将result列表转换为一个新的DataFrame格式数据rdf,并指定列名为Max。最后,通过rdf.to_csv():将这个rdf保存为一个新的.csv格式文件,并设置index=False以不保存索引列。

  执行上述代码,我们即可获得结果文件。如下图所示,为了方便对比,我们这里就将结果文件复制到原来的文件中进行查看。可以看到,结果列中第1个数字,就是原始列中前4行的最大值;结果列中第3个数字,则就是原始列中第9行到12行的最大值,以此类推。

  至此,大功告成。

欢迎关注:疯狂学习GIS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/807762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式行为型——责任链模式

目录 什么是责任链模式 责任链模式的实现 责任链模式角色 责任链模式类图 责任链模式举例 责任链模式代码实现 责任链模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是责任链模式 责任链模式(Chain of Responsibility Pattern)又叫职…

【面试题】前端中 JS 发起的请求可以暂停吗?

这个问题非常有意思,我一看到就想了很多可以回复的答案,但是评论区太窄,就直接开一篇文章来写了。 审题 JS 发起的请求可以暂停吗?这一句话当中有两个概念需要明确,一是什么样的状态才能称之为 暂停?二是…

Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)

简介 前边介绍的都是通过按钮点击启动按钮来启动appium服务,有的小伙伴或者童鞋们乍一听可能不信,或者会问如何通过命令行启动appium服务呢?且听一一道来。 一睹为快 其实相当的简单,不看不知道,一看吓一跳&#xf…

TCP 三次握手四次挥手浅析

大家都知道传输层中的TCP协议是面向连接的,提供可靠的连接服务,其中最出名的就是三次握手和四次挥手。 一、三次握手 三次握手的交互过程如下 喜欢钻牛角尖的我在学习三次握手的时候就想到了几个问题:为什么三次握手是三次?不是…

shell脚本:使用mysqldump实现分库分表备份

一.什么是分库分表备份 分库分表备份是一种数据库备份策略,用于处理大型数据库系统中的数据分布和备份需求。当数据库的数据量非常大时,单个数据库可能无法满足性能和可扩展性的要求。为了解决这个问题,使用分库分表技术将数据库拆分成多个库…

解决eclipse 打开报错 An error has occurred. See the log file null.

解决eclipse 打开报错an error has ocurred. See the log file null 出现原因:安装了高版本的jdk,更换 jdk 版本,版本太高了。 解决方案:更改环境变量 改成 jkd 1.8

【RTT驱动框架分析00】-应用层函数调用流程-串口为例

应用层函数调用流程分析以-串口为例 1. rt_device_find调用流程 RTT内部有一个全局变量数组rt_object_container数组的数量就是 rt_object_info_type 内核对象的种类,其中包含一个RT_USING_DEVICE (设备的数据类型),数组内部的每一个变量包含一个链表&…

Codeforces算法心得——A. Escalator Conversations

大家好,我是晴天学长,今天开始尝试一些外国的题目了,不得不说,创新性挺高的,然后是全英文,也可以练练英文的水平,后面我会持续的更新的!加油!💪💪…

新零售行业如何做会员管理和会员营销

蚓链数字化营销系统全渠道会员管理解决方案,线上线下统一管理,打造私域流量,微信、门店会员全渠道管理,打通私域流量池,实现裂变营销: 开启新零售之路,必然要摒弃原有的管理模式,大…

JDK17 中的新特性初步了解

1. Switch 语句的增强 jdk12 ,switch语句不用写break了,直接写箭头和对应的值。 jdk 17中, 加了一个逗号,用于匹配多对一。 如果要在每个case里写逻辑,可以写在花括号里。 在返回值的前面加上yield的关键字。 也可以对…

如何查看网页中请求的路由地址

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

软考A计划-系统集成项目管理工程师-项目质量管理-中

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

MySQL中锁的简介——行级锁

1.行级锁概念及分类 可通过以下语句查看意向锁和行锁的加锁情况: select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks;InnoDB的行锁是针对于索引加的锁,不通过索引条件检索数据&#xff0…

短视频矩阵营销系统技术开发者开发笔记分享

一、开发短视频seo抖音矩阵系统需要遵循以下步骤: 1. 确定系统需求:根据客户的需求,确定系统的功能和特点,例如用户注册登录、视频上传、视频浏览、评论点赞等。 2. 设计系统架构:根据系统需求,设计系统的…

【141. 环形链表】

来源:力扣(LeetCode) 描述: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环&#x…

Android 测试

工程目录图 1- Espresso 2- uiautomator Espresso 文档UI Automator文档ui-automator 英文文档 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 代码:testespresso 参考文献 Android 利用 espre…

“RWEQ+”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践

土壤风蚀是一个全球性的环境问题。中国是世界上受土壤风蚀危害最严重的国家之一,土壤风蚀是中国干旱、半干旱及部分湿润地区土地荒漠化的首要过程。中国风蚀荒漠化面积达160.74104km2,占国土总面积的16.7%,严重影响这些地区的资源开发和社会经…

Java的第十六篇文章——枚举、反射和注解(后期再学一遍)

目录 1. 枚举 1.1 学习目标 1.2 内容讲解 1.2.1 枚举的概述 1.2.2 为什么要使用枚举 1.2.3 作用 1.2.4 格式 2. 反射 2.1 学习目标 2.2 内容讲解 2.2.1 类加载(了解) 2.2.2 类的加载过程 2.2.3 类的初始化 2.2.4 类的加载器 2.2.5 Java系…

7年经验之谈 —— 浅谈web性能测试

什么是性能测试? web性能应该注意些什么? 性能测试,简而言之就是模仿用户对一个系统进行大批量的操作,得出系统各项性能指标和性能瓶颈,并从中发现存在的问题,通过多方协助调优的过程。而web端的性能测试…

9.容器服务更新和发现

文章目录 容器服务更新和发现服务发现consul概念关键特性总结 部署consul架构初始化部署群集查看 部署registrator服务器consul-template 模板文件consul多节点 容器服务更新和发现 服务发现 什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务…