欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)為Excel中每個(gè)單元格計(jì)算其在文件中的平均值

 更新時(shí)間:2023年10月07日 08:42:14   作者:瘋狂學(xué)習(xí)GIS  
這篇文章主要為大家詳細(xì)介紹了如何基于Python語(yǔ)言實(shí)現(xiàn)對(duì)大量不同的Excel文件加以跨文件、逐單元格平均值計(jì)算,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

本文介紹基于Python語(yǔ)言,對(duì)大量不同的Excel文件加以跨文件逐單元格平均值計(jì)算的方法。

首先,我們來(lái)明確一下本文的具體需求?,F(xiàn)有一個(gè)文件夾,其中有如下所示的大量Excel文件,我們這里就以 .csv 文件為例來(lái)介紹。其中,每一個(gè) .csv 文件的名稱(chēng)都是如下圖所示的 Ref_XXX_Y.csv 格式的,其中 XXX 表示三個(gè)字母,后面的 Y 則表示若干位數(shù)字。

對(duì)于其中的每一個(gè) .csv 文件,都有著如下圖所示的數(shù)據(jù)格式。

我們現(xiàn)在的需求是,希望對(duì)于每一個(gè)名稱(chēng)為 Ref_GRA_Y.csv 格式的 .csv 文件,求取其中每一個(gè)單元格在所有文件中數(shù)據(jù)的平均值。例如,對(duì)于上圖中 DOY 1 blue 這個(gè)單元格,那么求出來(lái)的平均值就是在全部名稱(chēng)為 Ref_GRA_Y.csv 格式的 .csv 文件之中, DOY 1 且列名為 blue 的單元格的平均值。此外,如果像上圖一樣,出現(xiàn)了部分單元格數(shù)值為 0 的情況,表明在當(dāng)前文件夾下,這個(gè)單元格是沒(méi)有數(shù)據(jù)的,因此需要在計(jì)算的時(shí)候舍去(并且取平均值時(shí)候的分母也要減小 1 )。

知道了需求,我們就可以開(kāi)始代碼的書(shū)寫(xiě)。其中,本文用到的具體代碼如下所示。此外,本文實(shí)現(xiàn)的需求也和我們之前的文章基于Python讀取多個(gè)Excel文件數(shù)據(jù)并跨越不同xlsx表格文件計(jì)算平均值有些類(lèi)似,大家如果有需要,也可以參考之前的這一篇文章。

# -*- coding: utf-8 -*-
"""
Created on Fri Oct  6 13:07:48 2023
@author: fkxxgis
"""
import os
import glob
import pandas as pd
folder_path = "E:/04_Reconstruction/02_Data/01_RGBNINDVI_History"
output_path = "E:/04_Reconstruction/02_Data"
file_pattern = "Ref_GRA_*.csv"
file_paths = glob.glob(os.path.join(folder_path, file_pattern))
combined_data = pd.DataFrame()
for file_path in file_paths:
    df = pd.read_csv(file_path)
    df_filtered = df[df != 0]
    combined_data = pd.concat([combined_data, df_filtered])
average_values = combined_data.groupby('DOY').mean()
output_file = "04_Data_YearAverage.csv"
average_values.to_csv(os.path.join(output_path,output_file), index=True)

其中,上述代碼的具體介紹如下。

首先,我們導(dǎo)入必要的庫(kù)—— os 庫(kù)用于文件路徑操作, glob 庫(kù)用于文件匹配, pandas 庫(kù)用于數(shù)據(jù)處理和分析。同時(shí),我們定義文件夾路徑 folder_path ,代表存儲(chǔ) .csv 文件的文件夾路徑;定義輸出路徑 output_path ,代表保存結(jié)果文件的路徑;定義文件匹配模式 file_pattern ,用于匹配需要處理的 .csv 文件的文件名模式。

隨后,我們使用 glob.glob() 函數(shù)結(jié)合文件夾路徑和文件匹配模式,獲取滿(mǎn)足條件的 .csv 文件的路徑列表,存儲(chǔ)在 file_paths 變量中。創(chuàng)建一個(gè)空的數(shù)據(jù)框 combined_data ,用于存儲(chǔ)所有文件的數(shù)據(jù)。

接下來(lái),我們使用一個(gè)循環(huán),遍歷 file_paths 列表中的每個(gè)文件路徑。對(duì)于每個(gè)文件路徑,使用 pd.read_csv() 函數(shù)加載 .csv 文件,并將其存儲(chǔ)在名為 df 的數(shù)據(jù)框中。其次,使用條件篩選語(yǔ)句 df[df != 0] 排除值為 0 的數(shù)據(jù),并將結(jié)果存儲(chǔ)在名為 df_filtered 的數(shù)據(jù)框中。緊接著,將當(dāng)前文件的數(shù)據(jù)框 df_filtered 合并到總數(shù)據(jù)框 combined_data 中,這一步驟使用 pd.concat() 函數(shù)實(shí)現(xiàn)。

完成所有文件的處理后,使用 combined_data.groupby('DOY').mean() 計(jì)算所有文件的平均值,按照 DOY 列進(jìn)行分組并求平均值。隨后,定義輸出文件名 output_file ,代表保存平均值結(jié)果的文件名。

最后,使用 os.path.join() 函數(shù)結(jié)合輸出路徑和輸出文件名,生成保存路徑,并使用 average_values.to_csv() 函數(shù)將平均值數(shù)據(jù)框 average_values 保存為一個(gè)新的 .csv 文件,指定 index=True 以包含索引列。

運(yùn)行上述代碼,我們即可得到結(jié)果文件。如下圖所示,可以看到結(jié)果文件中,已經(jīng)是計(jì)算之后的平均值結(jié)果了。

至此,大功告成。

到此這篇關(guān)于Python實(shí)現(xiàn)為Excel中每個(gè)單元格計(jì)算其在文件中的平均值的文章就介紹到這了,更多相關(guān)Python計(jì)算平均值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • django 控制頁(yè)面跳轉(zhuǎn)的例子

    django 控制頁(yè)面跳轉(zhuǎn)的例子

    今天小編就為大家分享一篇django 控制頁(yè)面跳轉(zhuǎn)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Python面向?qū)ο笕筇卣鳎豪^承、封裝和多態(tài)的深度解析

    Python面向?qū)ο笕筇卣鳎豪^承、封裝和多態(tài)的深度解析

    在面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象可以看做是數(shù)據(jù)(特性)以及由一系列可以存取、操作這些數(shù)據(jù)的方法所組成的集合,Python是面向?qū)ο蟮恼Z(yǔ)言,支持面向?qū)ο缶幊痰娜筇匦裕豪^承、封裝(隱藏)、多態(tài),本文將逐一講解Python的三大特性
    2025-01-01
  • 解決python 執(zhí)行shell命令無(wú)法獲取返回值的問(wèn)題

    解決python 執(zhí)行shell命令無(wú)法獲取返回值的問(wèn)題

    這篇文章主要介紹了解決python 執(zhí)行shell命令無(wú)法獲取返回值的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Python數(shù)據(jù)序列化技術(shù)總結(jié)

    Python數(shù)據(jù)序列化技術(shù)總結(jié)

    在現(xiàn)代軟件開(kāi)發(fā)中,數(shù)據(jù)序列化是一個(gè)關(guān)鍵環(huán)節(jié),它允許我們將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為可存儲(chǔ)或可傳輸?shù)母袷?,Python提供了多種數(shù)據(jù)序列化技術(shù),每種技術(shù)都有其獨(dú)特的性能優(yōu)勢(shì)和適用場(chǎng)景,本文將詳細(xì)介紹幾種強(qiáng)大的Python數(shù)據(jù)序列化技術(shù),需要的朋友可以參考下
    2025-03-03
  • 深入了解Python中pop和remove的使用方法

    深入了解Python中pop和remove的使用方法

    這篇文章主要介紹了深入了解Python中pop和remove的使用方法,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Flask框架信號(hào)用法實(shí)例分析

    Flask框架信號(hào)用法實(shí)例分析

    這篇文章主要介紹了Flask框架信號(hào)用法,結(jié)合實(shí)例形式分析了Blinker的安裝及信號(hào)的接收等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python連接數(shù)據(jù)庫(kù)并批量插入包含日期記錄的操作

    Python連接數(shù)據(jù)庫(kù)并批量插入包含日期記錄的操作

    這篇文章主要介紹了Python連接數(shù)據(jù)庫(kù)并批量插入包含日期記錄的操作,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • Django中的settings.py文件使用全解析

    Django中的settings.py文件使用全解析

    這篇文章主要介紹了Django中的settings.py文件使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • python開(kāi)發(fā)之a(chǎn)naconda以及win7下安裝gensim的方法

    python開(kāi)發(fā)之a(chǎn)naconda以及win7下安裝gensim的方法

    這篇文章主要介紹了python開(kāi)發(fā)之a(chǎn)naconda以及win7下安裝gensim的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 淺談python配置與使用OpenCV踩的一些坑

    淺談python配置與使用OpenCV踩的一些坑

    下面小編就為大家分享一篇淺談python配置與使用OpenCV踩的一些坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04

最新評(píng)論