首页 > 编程语言 >Python批量求取Excel表格每一个4行内某列的最大值、最小值

Python批量求取Excel表格每一个4行内某列的最大值、最小值

时间:2023-11-19 15:32:32浏览次数:37  
标签:某列 Python max 最大值 Excel column file csv name

  本文介绍基于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行的最大值,以此类推。

  至此,大功告成。

标签:某列,Python,max,最大值,Excel,column,file,csv,name
From: https://blog.51cto.com/fkxxgis/8473648

相关文章

  • 洛谷B2017 打印 ASCII 码(Python3)
    要点:1.Python的input()默认要换行,而在输入的时候即使只输了一个字符,也会被判定为输入两个字符。故此处要么只取字符串的第一位,要么在输入时用.strip()来删去首位字符,strip的介绍在这里2.Python中不能用强制类型转换来得到ASCII码,需要用到ord()函数。ord():括号内的字符的ASCI......
  • 洛谷B2016 浮点数向零舍入(Python3)
    要点:1.有正有负怎么办?正负分开写?如果只看数字部分,那取整的方式是一样的。所以我们可以先输出符号,把问题全都转化到非负数集中。2.如何取整?此处取整为向下取整。而强制类型转换把浮点数转化为整型数的时候是把小数部分全部去掉,而不是四舍五入,与题中取整方式相符,故可直......
  • python之numpy处理股票数据
    一概述Numpy是一个最重要的一个基于多维数组对象,即ndarray对象,该对象具有矢量算数运算能力和复杂的广播能力,可以执行一些科学计算。它的常用属性如下表所示:属性说明ndim数组的维度,如一维、二维、三维等shape数组的形状,如一个5行4列的数组,它的shape属性为(5,4)size数组元素的总个数......
  • Spring Boot 如何获取Excel sheet页的数量?
    前言在日常的开发中,我们经常需要读取Excel文件中的数据,其中涉及到获取Excel中sheet页的数量。本文将介绍如何使用SpringBoot获取Excelsheet页的数量。摘要本文主要介绍了如何使用SpringBoot获取Excel文件中sheet页的数量。首先通过POI库读取Excel文件,然后通过Workbook对象获......
  • 如何使用 Python 爬取天气预报网站的内容,并通过邮件发送爬取结果到指定邮箱地址
    本文是作者参加腾讯云社区选题互换赛解答的一道题目。题目为:如何使用Python爬取网页(例如天气,每日问好等等)出题者的动机是:每天早上要和妹子说早安,想要做个定时任务,每天早上能自动爬取天气,发送天气问好邮件,希望大神支招。面对这个题目,我们可以将其拆解成若干个小任务:使用Pytho......
  • 使用 ChatGPT 帮助小学生编程入门系列之二:使用 Python 编程发送电子邮件
    本系列前一篇文章,我们已经介绍了如何使用Python编写一段代码,将搜索引擎上找到的天气预报网站上的信息,读取到本地:使用ChatGPT帮助小学生编程入门系列之一:Python编程读取和解析天气预报网页上的数据本文我们再进一步,目标是把一段文本,通过Python发送到指定的邮箱去。学会......
  • python踩坑记录之import和module
    1.问题重现最近开发时需要将一个别人的python项目作为submodule引入,调用的时候遇到了奇怪的问题,最后定位到问题是import导致的。首先对问题做一个说明。项目结构如下:Project/main.pysubmodule/__init__.pyhandler.pytools.py导致问题的......
  • 洛谷 B2006 地球人口承载力估计(Python3)
    这题难点在理解题意。没有任何技术含量:(题目分析:1.“可持续发展”到底什么意思?Makeendsmeet.也就是说能养活的那些人一年消耗的等于地球一年产生的。2.题中为什么要给x,a,y,b?为了求等量关系。注意,这里"x 亿人生活 a 年,或供 y 亿人生活 b年"用的是地球新生的资源和原有......
  • 使用 ChatGPT 帮助小学生编程入门系列之一:Python 编程读取和解析天气预报网页上的数据
    现在国内小学生也开设了信息技术课,课程内容也涉及到了一些简单的编程实践,比如Scratch和Python.当初这个公众号申请时专门用了我儿子的名字,算是抢注吧,毕竟微信公众号和其他社交媒体平台不一样,不允许重名。我也曾经和我儿子聊过,我今年都40多岁了,这个公众号将来迟早有一天会正......
  • python:第二十三章:程序结构之分支结构
    一,if语句(单分支结构)if条件:   #执行代码块条件是一个表达式,它的值为布尔类型,值为True或False。如果条件为True,则执行冒号后面缩进的代码块;如果条件为False,则跳过代码块不执行。例子:123age=input('请输入你的年龄:')ifint(age)>=18: ......