You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python时间序列数据透视表:如何按特定月份汇总天气数据

处理时间序列天气数据:每年8-11月的年度求和透视表

没问题,我来一步步帮你实现这个需求~咱们分步骤来,确保每一步都清晰:

1. 先把时间列转成可处理的datetime格式

首先得让Pandas能识别你的时间数据,不管是已经有单独的日期列,还是分成年、月、日三列,都得转成datetime类型:

import pandas as pd

# 假设你的数据框是df,包含year、month、day三列
df['date'] = pd.to_datetime(df[['year', 'month', 'day']])

# 如果已经有现成的日期列(比如叫'date'),直接转换就行:
# df['date'] = pd.to_datetime(df['date'])

2. 筛选出8月到11月的数据

接下来咱们把每年8、9、10、11月的数据挑出来,用dt.month提取月份后筛选:

# 只保留月份在8-11之间的行
filtered_df = df[df['date'].dt.month.isin([8, 9, 10, 11])]

3. 用透视表做年度求和汇总

现在就可以用pivot_table按年份分组,对需要的天气指标(比如降水量、温度这些)求和了:

# 这里假设你要汇总的是precipitation(降水量)和temperature(温度)列,按需替换成你的列名
annual_summary = filtered_df.pivot_table(
    index='year',  # 按年份作为行索引
    values=['precipitation', 'temperature'],  # 要汇总的指标列
    aggfunc='sum'  # 汇总方式选求和
)

# 如果你的年份是从date列里提取的,也可以这么写:
# annual_summary = filtered_df.pivot_table(
#     index=filtered_df['date'].dt.year,
#     values=['precipitation', 'temperature'],
#     aggfunc='sum'
# )

4. 查看最终结果

运行完上面的代码,直接打印就能看到每年8-11月的各项指标求和结果啦:

print(annual_summary)

小补充

  • 如果有多个需要汇总的列,直接在values里添加就行
  • 要是想给汇总后的列名加个前缀(比如Sum_precipitation),可以用add_prefix:annual_summary = annual_summary.add_prefix('Sum_')

内容的提问来源于stack exchange,提问作者MAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 15:52:41