【问题标题】:Iterating a custom date range over multiple years in Pandas在 Pandas 中迭代多年的自定义日期范围
【发布时间】:2019-03-09 22:32:43
【问题描述】:

简而言之:如何解析非标准年份的年度数据。就我而言,九月到九月。

我有一个脚本可以解析多年的每小时温度数据,并计算每年的累积生长期天数 (GDD)。一些演示数据和脚本位于this gist,如果您好奇我在哪里。肉和土豆虽然得到了每年的累计总和:

df[col_name] = df.resample('Y')['dGDD'].cumsum()

一切正常。每天将在适当的列中显示累积的 GDD,直到 12 月 31 日再次从零开始。

我的下一个目标是计算与 GDD 类似的寒冷度日,但它每年从 9 月到 9 月运行,我不知道如何计算(或正确谷歌寻求帮助的方法)。我知道我可以设置一个日期范围来运行它,即df['2012-9-1':'2013-9-1'],但我不确定如何为我的全部数据(2007-2018)自动化它。

谢谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    解决了!原来我正在寻找的时间段被称为“水年”。学习将我带到另一个question and answer。结合对 .resample() docs 的仔细观察,我了解到您可以将重采样定向到索引以外的其他内容,我得到了这个:

    df['WaterYear'] = df.index + pd.DateOffset(months=-8)
    df[col_name] = df.resample('Y', on='WaterYear')['dCDD'].cumsum()
    

    现在一切似乎都很顺利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2019-10-08
      相关资源
      最近更新 更多