Python實現(xiàn)求取表格文件某個區(qū)域內(nèi)單元格的最大值
本文介紹基于Python語言,基于Excel表格文件內(nèi)某一列的數(shù)據(jù),計算這一列數(shù)據(jù)在每一個指定數(shù)量的行的范圍內(nèi)(例如每一個4行的范圍內(nèi))的區(qū)間最大值的方法。
已知我們現(xiàn)有一個.csv格式的Excel表格文件,其中有一列數(shù)據(jù),我們希望對其加以區(qū)間最大值的計算——即從這一列的數(shù)據(jù)部分(也就是不包括列名的部分)開始,第1行到第4行之間的最大值、第5行到第8行的最大值、第9行到第12行的最大值等等,加以分別計算每4行中的最大值;此外,如果這一列數(shù)據(jù)的個數(shù)不能被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)在這里,我們定義一個函數(shù)calculate_max_every_eight_rows(因為一開始我為了計算8個數(shù)據(jù)的區(qū)間最大值,所有函數(shù)名稱是eight,大家理解即可),接受兩個參數(shù),分別為輸入文件路徑excel_file,以及要計算區(qū)間最大值對應的那一列的列名column_name。
在函數(shù)中,我們首先讀取文件,將數(shù)據(jù)保存到df中;接下來,我們從中獲取指定列column_name的數(shù)據(jù),并創(chuàng)建一個空列表max_values,用于保存每個分組的最大值。隨后,使用range函數(shù)生成從0開始,步長為4的索引序列,以便按每4行進行分組;這里大家按照實際的需求加以修改即可。在每個分組內(nèi),我們從column_data中取出這對應的4行數(shù)據(jù),并計算該分組內(nèi)的最大值,將最大值添加到max_values列表中。最后,函數(shù)返回保存了每個分組最大值的列表max_values。
其次,我們通過excel_file指定輸入的文件路徑,通過column_name指定要處理的列名,隨后即可調(diào)用calculate_max_every_eight_rows函數(shù),并將返回的結果保存到result變量中,該結果是一個包含了每個分組最大值的列表。
隨后,我們?yōu)榱藢⒆畲笾到Y果保存,因此選擇將result列表轉換為一個新的DataFrame格式數(shù)據(jù)rdf,并指定列名為Max。最后,通過rdf.to_csv():將這個rdf保存為一個新的.csv格式文件,并設置index=False以不保存索引列。
執(zhí)行上述代碼,我們即可獲得結果文件。如下圖所示,為了方便對比,我們這里就將結果文件復制到原來的文件中進行查看??梢钥吹?,結果列中第1個數(shù)字,就是原始列中前4行的最大值;結果列中第3個數(shù)字,則就是原始列中第9行到12行的最大值,以此類推。

至此,大功告成。
以上就是Python實現(xiàn)求取表格文件某個區(qū)域內(nèi)單元格的最大值的詳細內(nèi)容,更多關于Python求取文件最大值的資料請關注腳本之家其它相關文章!
相關文章
python調(diào)用matlab的m自定義函數(shù)方法
今天小編就為大家分享一篇python調(diào)用matlab的m自定義函數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
python實現(xiàn)網(wǎng)站用戶名密碼自動登錄功能
最近接到這樣的需求通過網(wǎng)頁用戶認證登錄實現(xiàn)上網(wǎng),如何實現(xiàn)網(wǎng)站自動登錄功能呢,接下來小編給大家?guī)砹藀ython實現(xiàn)網(wǎng)站用戶名密碼自動登錄功能,需要的朋友可以參考下2019-08-08
python實現(xiàn)愛奇藝登陸密碼RSA加密的方法示例詳解
這篇文章主要介紹了python實現(xiàn)愛奇藝登陸的密碼RSA加密的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Pyqt清空某一個QTreeewidgetItem下的所有分支方法
今天小編就為大家分享一篇Pyqt清空某一個QTreeewidgetItem下的所有分支方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python中pow()和math.pow()函數(shù)用法示例
這篇文章主要介紹了Python中pow()和math.pow()函數(shù)用法,結合具體實例形式分析了Python使用pow()和math.pow()函數(shù)進行冪運算的相關操作技巧,需要的朋友可以參考下2018-02-02
利用Python實現(xiàn)讀取Word表格計算匯總并寫入Excel
這篇文章主要給大家介紹了關于如何利用Python實現(xiàn)讀取Word表格計算匯總并寫入Excel的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-01-01
局域網(wǎng)內(nèi)python socket實現(xiàn)windows與linux間的消息傳送
這篇文章主要介紹了局域網(wǎng)內(nèi)python socket實現(xiàn)windows與linux間的消息傳送的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04

