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

如何用Pandas按年中日分组多年份数据并求最值?

按年中日(DOY)分组计算最值的简洁Pandas方法

你不用额外新增DOY列,直接借助Pandas日期索引的内置属性就能搞定,代码更清爽:

# 假设你的DataFrame名为df
# 按日期索引的年中日分组,同时计算两列的最大、最小值
result = df.groupby(df.index.dayofyear).agg(
    TMAXDEC_max=('TMAXDEC', 'max'),
    TMAXDEC_min=('TMAXDEC', 'min'),
    TMINDEC_max=('TMINDEC', 'max'),
    TMINDEC_min=('TMINDEC', 'min')
)

这样直接用df.index.dayofyear提取年中日数值做分组键,省去了新增列的步骤,而且通过具名聚合的方式,直接得到清晰的列名,不用后续再重命名。

如果需要把DOY作为普通列展示,加一行重置索引即可:

result = result.reset_index().rename(columns={'index': 'DOY'})

关键说明

  • dayofyear是Pandas日期时间索引的原生属性,自动返回对应日期的年中日数值,和你手动生成的DOY完全一致
  • 具名聚合(指定列名=(原列, 聚合函数))让结果列名更直观,一步到位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:12:38