【发布时间】:2021-12-15 10:13:15
【问题描述】:
xarray 提供了 groupby 函数,我们可以使用它来计算气候数据的异常。例如,可以根据http://xarray.pydata.org/en/stable/examples/weather-data.html计算月度天气数据的异常:
climatology = ds.groupby("time.month").mean("time")
anomalies = ds.groupby("time.month") - climatology
但是,当我们要计算每日数据的异常时,我们需要考虑闰年的 2 月 29 日。如果我们使用上面提到的语法,下面给出例子:
import pandas as pd
import numpy as np
date = pd.date_range('20110101','20161231',freq='D')
data = np.random.rand(len(date))
da = xr.DataArray(data,dims=['date'],coords=dict(date=date))
da_group = da.groupby('date.dayofyear')
此方法根据日期中的 dayofyear 划分 DataArray。但是当我们想根据日期的'month'和'day'进行分组时,我们怎么做,例如每年的Month=4和Day=14(值得一提的是2011-04的dayofyears -10 和 2012-04-10 不同)。
我尝试过da_group = da.groupby(['date.month','date.day']),但是错误 `group` must be an xarray.DataArray or the name of an xarray variable or dimension.Received ['date.month', 'date.day'] instead.似乎有问题。
那么我们如何根据日期的月份和日期进行分组呢?谢谢!
【问题讨论】:
标签: python pandas-groupby python-xarray