首页 > 解决方案 > 十二月/一月季节性平均值

问题描述

我正在尝试计算 DJF 和 DJ 冬季月份的季节性平均值。我首先尝试使用 Xarray 的 .groupby 函数:

ds.groupby('time.month').mean('time')

然后我意识到,它不是按前几年的 12 月和随后的 1 月/2 月分组,而是将同一年的所有三个月分组。然后,我能够通过重新采样并创建一个函数来选择合适的 3 个月期间来弄清楚如何解决 DJF 季节:

    >def is_djf(month):
            return (month == 12)
    >ds.resample('QS-MAR').mean('time')
    >ds.sel(time=is_djf(ds['time.month']))

不幸的是,我仍然不确定如何解决十二月/一月的问题。季节,因为我使用的重采样方法是每季度抵消一次。感谢您的任何帮助!

标签: pythonpandaspandas-groupbypython-xarraypandas-resample

解决方案


resampleQS-DEC. _

假设这个数据框:

         time  val
0  2020-12-31    1
1  2021-01-31    1
2  2021-02-28    1
3  2021-03-31    2
4  2021-04-30    2
5  2021-05-31    2
6  2021-06-30    3
7  2021-07-31    3
8  2021-08-31    3
9  2021-09-30    4
10 2021-10-31    4
11 2021-11-30    4
12 2021-12-31    5
13 2022-01-31    5
14 2022-02-28    5
>>> df.set_index('time').resample('QS-DEC').mean()
            val
time
2020-12-01  1.0
2021-03-01  2.0
2021-06-01  3.0
2021-09-01  4.0
2021-12-01  5.0

推荐阅读