Python计算多个表格中多列数据的平均值与标准差并导出为新的Excel文件

  本文介绍基于Python 语言,对一个或多个表格文件 中多列数据 分别计算平均值 与标准差 ,随后将多列数据 对应的这2个数据结果导出为新的表格文件的方法。

  首先,来看一下本文的需求。现有2个.csv格式的表格文件,其每1列表示1个变量,每1行则表示1个样本;其中1个表格文件如下图所示。

  我们现在需要分别对这2个表格文件执行如下操作:计算出其中部分变量 (部分列)在所有样本 (所有行)中的平均值 与标准差 数据,然后将这些数据结果导出到一个新的.csv格式文件中。

  需求也很简单。明确了需求,接下来就可以开始代码的撰写;本文所用代码如下。

python 复制代码
# -*- coding: utf-8 -*-
"""
Created on Sun Mar 10 17:59:23 2024

@author: fkxxgis
"""

import pandas as pd

data = pd.read_csv(r"F:\Data_Reflectance_Rec\Train_data\Train_Model_0715_Main_Over_B_New.csv")
data_nir = pd.read_csv(r"F:\Data_Reflectance_Rec\Train_data\Train_Model_0715_Main_Over_NIR_New.csv")

column_need = ["blue", "green", "red", "inf", "NDVI", "NDVI_dif", "days", "sola", "temp", "prec", "soil", "blue_h", "green_h", "red_h", "inf_h", "ndvi_h", "blue_h_dif", "green_h_dif", "red_h_dif", "inf_h_dif", "ndvi_h_dif"]

mean_value = data[column_need].mean()
std_value = data[column_need].std()
mean_value_nir = data_nir[column_need].mean()
std_value_nir = data_nir[column_need].std()

data_new = pd.DataFrame({"mean_RGB": mean_value, "std_RGB": std_value, "mean_NIR": mean_value_nir, "std_NIR": std_value_nir})

data_new.to_csv(r"F:\Data_Reflectance_Rec\Train_data\mean_std.csv", index = True)

  上述代码具体含义如下。

  首先,使用pandas库导入了pd模块。

  其次,使用pd.read_csv()函数从2个.csv格式表格文件中读取数据。其中,因为本文需要读取的是2个文件,所以分别用data变量与data_nir变量读取这2个不同路径的表格文件。

  接下来,定义了一个column_need列表,其中包含了需要计算平均值和标准差的列名。

  随后,使用mean()函数和std()函数分别计算了data和data_nir中指定列的平均值和标准差,并将结果分别赋值给mean_value、std_value、mean_value_nir和std_value_nir变量。

  然后,使用pd.DataFrame创建了一个新的数据框data_new,其中包含了4列数据:mean_RGB列存储了data中计算得到的平均值 ,std_RGB列存储了data中计算得到的的标准差 ;mean_NIR列存储了data_nir中计算得到的平均值 ,std_NIR列存储了data_nir中计算得到的标准差。

  最后,使用to_csv()函数将data_new保存到文件路径为mean_std.csv的.csv格式文件中,设置index=True表示将索引列也保存到文件中。

  运行上述代码,即可在结果文件夹中找到对应的结果.csv格式文件;如下图所示,其已经是我们需要的形式了------每1列表示1种对应的结果,每1行表示1种变量。

  至此,大功告成。

欢迎关注:疯狂学习GIS

相关推荐
橙橙笔记5 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
小小张说故事5 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
天天被压力7 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力7 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python
特立独行的猫A7 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
小lo想吃棒棒糖8 小时前
把机器人训练从 GPU 搬到昇腾 NPU:启元 Q1 起身动作 PPO 训练全记录
python·机器人·昇腾·启元机器人
Thanks_ks8 小时前
【第 006 讲】搭建 PyCharm 开发环境:PyCharm 的下载与安装 | 初始设置与常用配置
ide·python·pycharm·开发工具·jetbrains·开发环境·集成开发环境
青少儿编程课堂9 小时前
蓝桥杯青少组图形化省考报名倒计时·全国青少年信息素养大赛·电子学会图形化考级:校园黑白棋人机对战解析
c++·python·算法·bfs·信息学竞赛
tellmewhoisi9 小时前
nlp:知识库检索和dify知识库创建
python·自然语言处理
2601_9687931410 小时前
Python Requests 轻量自动化:无需浏览器,实现真人级账号浏览模拟
开发语言·python·自动化