大型数据集每两列求均值:日平均温度计算方案求助
日平均温度计算方案
下面是针对12小时间隔温度数据集(按列组织)的日平均温度计算简便实现方案,涵盖常用工具:
Excel实现
- 假设数据首行是时间标签,从A1开始排版
- 选中第一组两列的第一个数据单元格(比如A2和B2),在空白单元格(如E2)输入公式:
=(A2+B2)/2 - 选中E2单元格,向右拖动填充柄,Excel会自动按每两列一组的规则批量计算后续日期的平均值
- 若有多行数据,继续向下拖动填充柄即可完成全量计算
Python(Pandas)实现
适合处理超大型数据集,代码简洁高效:
import pandas as pd # 读取数据集(支持csv、excel等格式,根据实际文件调整) df = pd.read_excel('temperature_data.xlsx', header=0) # 生成分组索引:将每两列归为同一组 group_ids = [i // 2 for i in range(df.shape[1])] # 按列分组计算均值 daily_avg_df = df.groupby(group_ids, axis=1).mean() # 重命名列,提取每组的日期(从首列时间标签中截取日期部分) daily_avg_df.columns = [df.columns[2*i].split()[0] for i in range(daily_avg_df.shape[1])] # 保存结果 daily_avg_df.to_excel('daily_avg_temperature.xlsx', index=False)
R语言实现
# 读取数据文件 temp_data <- read.csv("temperature_data.csv", header = TRUE) # 创建分组索引,每两列对应一个分组 group_idx <- rep(1:(ncol(temp_data)/2), each = 2) # 按分组计算列均值 daily_avg <- aggregate(temp_data, by = list(group_idx), mean)[, -1] # 重命名列,提取日期信息 colnames(daily_avg) <- sapply(seq(1, ncol(temp_data), 2), function(x) { strsplit(colnames(temp_data)[x], " ")[[1]][1] }) # 导出结果 write.csv(daily_avg, "daily_avg_temperature.csv", row.names = FALSE)
内容的提问来源于stack exchange,提问作者DJ-AFC
相关产品推荐
相关产品推荐

