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

如何用Python实现月度数据干湿季拆分与结果文件导出

所用数据示例图

实现思路

整个实现用pandas库做表格处理即可,对新手友好,不需要写复杂的底层逻辑,核心步骤如下:

  • 先读取月度风速数据集,自动把年月列解析成Python可识别的时间格式,方便后续提取年、月维度信息
  • 按规则给每条数据打分类标签:
    • 月份在5-10月的标记为干季,直接归属对应自然年的干季分组
    • 月份在11月、12月、1-4月的标记为湿季,这里要注意跨年问题:11-12月属于「当年到次年」的湿季,1-4月属于「上一年到当年」的湿季,必须给同个湿季的数据打统一的分组标签,否则会把同一个湿季的数据拆到两个自然年里,后续统计就会出错
  • 把打了标签的数据按干、湿季拆成两个独立表格,导出成通用格式文件即可,推荐导出为csv格式,不需要额外安装软件,用Excel就能直接打开查看。
前期准备

先打开电脑的命令提示符,执行下面的命令安装需要的依赖库:
pip install pandas
如果你的原始数据是xlsx格式的Excel文件,再多装一个读取依赖:
pip install openpyxl

参考代码

代码里加了详细注释,你只要修改开头配置部分的文件路径、列名和自己的数据匹配即可,其他逻辑不需要改动:

import pandas as pd

# -------------------------- 👇 这里改成你自己的文件配置 👇 --------------------------
file_path = "你的月度风速数据文件路径.csv"  # 后缀是.xlsx就改成对应文件名
date_col = "月份"  # 你数据里存储年月的列的列名,比如叫"日期""观测时间"就对应替换
wind_col = "平均风速"  # 你数据里存储平均风速值的列的列名
# -------------------------- 👆 改完上面这部分就能直接运行 👆 --------------------------

# 读取数据,自动解析日期列
if file_path.endswith(".csv"):
    df = pd.read_csv(file_path, parse_dates=[date_col])
else:
    df = pd.read_excel(file_path, parse_dates=[date_col])

# 提取每条数据的年份、月份
df["自然年"] = df[date_col].dt.year
df["月份"] = df[date_col].dt.month

# 给每条数据打上季节类型、所属季节分组的标签
df["季节类型"] = ""
df["所属季节分组"] = ""
for i, row in df.iterrows():
    m = row["月份"]
    y = row["自然年"]
    if 5 <= m <= 10:
        df.loc[i, "季节类型"] = "干季"
        df.loc[i, "所属季节分组"] = f"{y}年干季"
    else:
        df.loc[i, "季节类型"] = "湿季"
        if m >= 11:
            # 11、12月归到当年-次年的湿季
            df.loc[i, "所属季节分组"] = f"{y}-{y+1}年湿季"
        else:
            # 1-4月归到上一年-当年的湿季
            df.loc[i, "所属季节分组"] = f"{y-1}-{y}年湿季"

# 拆分干季、湿季表,只保留核心字段
dry_df = df[df["季节类型"] == "干季"][["所属季节分组", date_col, wind_col]]
wet_df = df[df["季节类型"] == "湿季"][["所属季节分组", date_col, wind_col]]

# 导出文件,默认存在和代码同一个文件夹下,设置编码避免中文乱码
dry_df.to_csv("各年份干季风速数据.csv", index=False, encoding="utf-8-sig")
wet_df.to_csv("各年份湿季风速数据.csv", index=False, encoding="utf-8-sig")

print("处理完成!两个结果文件已经生成在代码所在文件夹里")
补充说明

如果你不需要导出逐月明细,想直接统计每个干季、湿季的平均风速,只要在导出前加两行分组统计的代码即可:

# 计算每个干季的平均风速
dry_season_avg = dry_df.groupby("所属季节分组")[wind_col].mean().reset_index()
dry_season_avg.to_csv("各干季平均风速统计.csv", index=False, encoding="utf-8-sig")

# 计算每个湿季的平均风速
wet_season_avg = wet_df.groupby("所属季节分组")[wind_col].mean().reset_index()
wet_season_avg.to_csv("各湿季平均风速统计.csv", index=False, encoding="utf-8-sig")

运行后直接得到每个季节周期的平均风速统计结果,不需要手动计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:03:27