Python每日平均值函数开发:从CSV文件计算指定变量日均值
实现
daily_average函数计算逐小时数据的每日平均值 核心思路
借助pandas的时间序列处理能力,把逐小时数据的日期、时间合并为完整时间戳,通过按天重采样直接计算指定变量的每日平均值,高效且逻辑清晰。
代码实现
import pandas as pd import numpy as np def daily_average(data, station, variable): # 从数据源中获取指定站点的DataFrame(假设data是键为站点名的字典) if station not in data: raise ValueError(f"站点 {station} 不存在于数据源中") df = data[station] # 验证指定变量是否存在 if variable not in df.columns: raise ValueError(f"变量 {variable} 不存在于站点 {station} 的数据中") # 合并日期与时间列,生成datetime索引 df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time']) df = df.set_index('datetime') # 按天重采样,计算每日平均值 daily_avg_series = df[variable].resample('D').mean() # 返回numpy数组或列表,按需选择一种即可 return daily_avg_series.values # 返回numpy数组 # return daily_avg_series.tolist() # 返回Python列表
关键细节说明
- 数据源适配:假设
data是字典结构,键为站点名称(对应3个CSV文件),值为读取后的pandas DataFrame。如果你的data已经是目标站点的DataFrame,可直接删除站点校验和筛选的代码块。 - 时间处理:
pd.to_datetime自动解析date+time的字符串组合,生成标准datetime格式;将其设为索引后,resample('D')能快速按天聚合数据。 - 异常防护:加入站点和变量的存在性校验,避免因参数错误导致运行时异常,提升函数健壮性。
- 返回格式:
values属性返回numpy数组,tolist()返回Python列表,可根据调用场景切换。
内容的提问来源于stack exchange,提问作者CawbyCop
相关产品推荐
相关产品推荐

