Python如何计算指定行平均值 将月度气温数据聚合为年度数据
Python月度气温数据转年度粒度聚合方案
核心逻辑:从存储日期的dt列提取年份维度,按年分组计算12个月的气温平均值,将原月度粒度数据转换为年度粒度,即可大幅缩短可视化图表的展示长度。
具体实现步骤
- 依赖库导入与数据加载
先导入数据处理、可视化需要的pandas和matplotlib库,读取本地气温数据集:import pandas as pd import matplotlib.pyplot as plt # 替换为你自己的数据集文件路径 df = pd.read_csv("temperature_data.csv") - 日期字段预处理
将字符串格式的dt列转为pandas标准日期格式,从中提取年份生成新的聚合维度列:# 转换dt列为日期类型 df["dt"] = pd.to_datetime(df["dt"]) # 提取年份存入新列 df["year"] = df["dt"].dt.year - 年度维度聚合计算均值
按年份列分组,对所有需要统计的气温字段计算全年平均值,直接得到年度粒度的数据集:# 方括号内替换为你数据集里实际的气温字段名,比如陆地平均温、海洋平均温等 df_annual = df.groupby(by="year", as_index=False)[ ["LandAverageTemperature", "LandAndOceanAverageTemperature"] ].mean() - 结果校验与可视化
先输出聚合后的数据前几行确认计算结果正确,再绘制年度粒度的气温趋势图即可:# 打印前5行校验聚合结果 print(df_annual.head()) # 绘制年度气温趋势图 plt.figure(figsize=(10, 6)) plt.plot(df_annual["year"], df_annual["LandAverageTemperature"], label="陆地年平均气温") plt.plot(df_annual["year"], df_annual["LandAndOceanAverageTemperature"], label="陆海综合年平均气温") plt.xlabel("年份") plt.ylabel("气温(℃)") plt.legend() plt.tight_layout() plt.show()
常见问题说明:如果原始月度数据存在气温值缺失的情况,建议在聚合前先做缺失值填充(比如用对应月份的历史均值填充),避免年度均值计算结果出现偏差。
如果需要调整聚合规则(比如计算年度最高/最低温),只需要把聚合函数从.mean()替换成.max()/.min()即可。
内容的提问来源于stack exchange,提问作者fleurderose
相关产品推荐
相关产品推荐

