【发布时间】:2019-01-31 13:21:06
【问题描述】:
问题:
我想重新采样一个 xarray 数据集,例如当至少一个输入值为 nan 时,每个结果值为 nan 的总和或平均值。使用 pandas,我可以轻松应用自己的均值、求和等函数,为我提供我喜欢的 nan 治疗。 xarray 也允许 resample.apply(own_func) 但我在定义自己的函数时遇到问题。
示例 (from xarray's documentation):
dat=np.linspace(0, 11, 12)
dat[2]=np.nan
da = xr.DataArray(dat,
coords=[pd.date_range('15/12/1999',
periods=12,
freq=pd.DateOffset(months=1))],
dims='time')
da.resample(time="QS-DEC").sum()
我得到了什么:
<xarray.DataArray (time: 4)>
array([ 1., 12., 21., 30.])
Coordinates:
* time (time) datetime64[ns] 1999-12-01 2000-03-01 2000-06-01 2000-09-01
@JulianGiles 回答:
da.resample(time="QS-DEC",skipna=False).mean()
<xarray.DataArray (time: 4)>
array([ 0.5, 4. , 7. , 10. ])
Coordinates:
* time (time) datetime64[ns] 1999-12-01 2000-03-01 2000-06-01 2000-09-01
我想要什么:
<xarray.DataArray (time: 4)>
array([ 1., NAN, 21., 30.])
Coordinates:
* time (time) datetime64[ns] 1999-12-01 2000-03-01 2000-06-01 2000-09-01
【问题讨论】:
标签: python pandas python-xarray