Вы должны использовать resample
doc с периодичностью один месяц. Тогда:
ds_avg = ds.resample('1M').mean()
Если вас интересуют другие подобные (простые) манипуляции, взгляните на этот блокнот, который мы настроили для набора данных ERA-NUTS .
Другой пример использования другого набора данных:
<xarray.Dataset>
Dimensions: (bnds: 2, latitude: 61, longitude: 91, time: 218)
Coordinates:
* longitude (longitude) float32 -22.5 -21.75 -21.0 -20.25 ... 43.5 44.25 45.0
* latitude (latitude) float32 72.0 71.25 70.5 69.75 ... 28.5 27.75 27.0
* time (time) datetime64[ns] 2000-01-16T15:00:00 ... 2018-01-01T03:00:00
Dimensions without coordinates: bnds
Data variables:
time_bnds (time, bnds) datetime64[ns] ...
ssrdc (time, latitude, longitude) float64 ...
ssrd (time, latitude, longitude) float64 ...
И затем применяя повторную выборку:
In [13]: d.resample(time = '1Y').mean()
Out[13]:
<xarray.Dataset>
Dimensions: (latitude: 61, longitude: 91, time: 19)
Coordinates:
* time (time) datetime64[ns] 2000-12-31 2001-12-31 ... 2018-12-31
* longitude (longitude) float32 -22.5 -21.75 -21.0 -20.25 ... 43.5 44.25 45.0
* latitude (latitude) float32 72.0 71.25 70.5 69.75 ... 28.5 27.75 27.0
Data variables:
ssrdc (time, latitude, longitude) float64 5.033e+05 ... 1.908e+05
ssrd (time, latitude, longitude) float64 4.229e+05 ... 1.909e+05