Python實(shí)現(xiàn)求取表格文件某個(gè)區(qū)域內(nèi)單元格的最大值
本文介紹基于Python語(yǔ)言,基于Excel表格文件內(nèi)某一列的數(shù)據(jù),計(jì)算這一列數(shù)據(jù)在每一個(gè)指定數(shù)量的行的范圍內(nèi)(例如每一個(gè)4
行的范圍內(nèi))的區(qū)間最大值的方法。
已知我們現(xiàn)有一個(gè).csv
格式的Excel表格文件,其中有一列數(shù)據(jù),我們希望對(duì)其加以區(qū)間最大值的計(jì)算——即從這一列的數(shù)據(jù)部分(也就是不包括列名的部分)開始,第1
行到第4
行之間的最大值、第5
行到第8
行的最大值、第9
行到第12
行的最大值等等,加以分別計(jì)算每4
行中的最大值;此外,如果這一列數(shù)據(jù)的個(gè)數(shù)不能被4
整除,那么到最后還剩余幾個(gè),那就對(duì)這幾個(gè)加以最大值的求取即可。
明確了需求,我們即可開始代碼的撰寫;具體如下所示。
# -*- 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)
在這里,我們定義一個(gè)函數(shù)calculate_max_every_eight_rows
(因?yàn)橐婚_始我為了計(jì)算8
個(gè)數(shù)據(jù)的區(qū)間最大值,所有函數(shù)名稱是eight
,大家理解即可),接受兩個(gè)參數(shù),分別為輸入文件路徑excel_file
,以及要計(jì)算區(qū)間最大值對(duì)應(yīng)的那一列的列名column_name
。
在函數(shù)中,我們首先讀取文件,將數(shù)據(jù)保存到df
中;接下來(lái),我們從中獲取指定列column_name
的數(shù)據(jù),并創(chuàng)建一個(gè)空列表max_values
,用于保存每個(gè)分組的最大值。隨后,使用range
函數(shù)生成從0
開始,步長(zhǎng)為4
的索引序列,以便按每4
行進(jìn)行分組;這里大家按照實(shí)際的需求加以修改即可。在每個(gè)分組內(nèi),我們從column_data
中取出這對(duì)應(yīng)的4
行數(shù)據(jù),并計(jì)算該分組內(nèi)的最大值,將最大值添加到max_values
列表中。最后,函數(shù)返回保存了每個(gè)分組最大值的列表max_values
。
其次,我們通過(guò)excel_file
指定輸入的文件路徑,通過(guò)column_name
指定要處理的列名,隨后即可調(diào)用calculate_max_every_eight_rows
函數(shù),并將返回的結(jié)果保存到result
變量中,該結(jié)果是一個(gè)包含了每個(gè)分組最大值的列表。
隨后,我們?yōu)榱藢⒆畲笾到Y(jié)果保存,因此選擇將result
列表轉(zhuǎn)換為一個(gè)新的DataFrame格式數(shù)據(jù)rdf
,并指定列名為Max
。最后,通過(guò)rdf.to_csv()
:將這個(gè)rdf
保存為一個(gè)新的.csv
格式文件,并設(shè)置index=False
以不保存索引列。
執(zhí)行上述代碼,我們即可獲得結(jié)果文件。如下圖所示,為了方便對(duì)比,我們這里就將結(jié)果文件復(fù)制到原來(lái)的文件中進(jìn)行查看??梢钥吹?,結(jié)果列中第1
個(gè)數(shù)字,就是原始列中前4
行的最大值;結(jié)果列中第3
個(gè)數(shù)字,則就是原始列中第9
行到12
行的最大值,以此類推。
至此,大功告成。
以上就是Python實(shí)現(xiàn)求取表格文件某個(gè)區(qū)域內(nèi)單元格的最大值的詳細(xì)內(nèi)容,更多關(guān)于Python求取文件最大值的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python調(diào)用matlab的m自定義函數(shù)方法
今天小編就為大家分享一篇python調(diào)用matlab的m自定義函數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02python實(shí)現(xiàn)網(wǎng)站用戶名密碼自動(dòng)登錄功能
最近接到這樣的需求通過(guò)網(wǎng)頁(yè)用戶認(rèn)證登錄實(shí)現(xiàn)上網(wǎng),如何實(shí)現(xiàn)網(wǎng)站自動(dòng)登錄功能呢,接下來(lái)小編給大家?guī)?lái)了python實(shí)現(xiàn)網(wǎng)站用戶名密碼自動(dòng)登錄功能,需要的朋友可以參考下2019-08-08python實(shí)現(xiàn)愛奇藝登陸密碼RSA加密的方法示例詳解
這篇文章主要介紹了python實(shí)現(xiàn)愛奇藝登陸的密碼RSA加密的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Pyqt清空某一個(gè)QTreeewidgetItem下的所有分支方法
今天小編就為大家分享一篇Pyqt清空某一個(gè)QTreeewidgetItem下的所有分支方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Python中pow()和math.pow()函數(shù)用法示例
這篇文章主要介紹了Python中pow()和math.pow()函數(shù)用法,結(jié)合具體實(shí)例形式分析了Python使用pow()和math.pow()函數(shù)進(jìn)行冪運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02利用Python實(shí)現(xiàn)讀取Word表格計(jì)算匯總并寫入Excel
這篇文章主要給大家介紹了關(guān)于如何利用Python實(shí)現(xiàn)讀取Word表格計(jì)算匯總并寫入Excel的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01局域網(wǎng)內(nèi)python socket實(shí)現(xiàn)windows與linux間的消息傳送
這篇文章主要介紹了局域網(wǎng)內(nèi)python socket實(shí)現(xiàn)windows與linux間的消息傳送的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04wxpython中利用線程防止假死的實(shí)現(xiàn)方法
上午抽空學(xué)習(xí)了一下在wxpython中啟用線程的方法,將GUI和功能的執(zhí)行分開,果然程序運(yùn)行起來(lái)杠杠滴。因?yàn)槲夷莻€(gè)軟件的代碼暫時(shí)不能公開,這里專門寫個(gè)小程序,作為今天的筆記吧2014-08-08