xarray.DataArray.resample#

DataArray.resample(indexer=None, *, skipna=None, closed=None, label=None, offset=None, origin='start_day', restore_coord_dims=None, **indexer_kwargs)[source] #

Returns a Resample object for performing resampling operations.

Handles both downsampling and upsampling. The resampled dimension must be a datetime-like coordinate. If any intervals contain no values from the original object, they will be given the value NaN.

Parameters:
  • indexer (Mapping of Hashable to str, datetime.timedelta, pd.Timedelta, pd.DateOffset, or Resampler, optional) – Mapping from the dimension name to resample frequency [1]. The dimension must be datetime-like.

  • skipna (bool, optional) – Whether to skip missing values when aggregating in downsampling.

  • closed ({"left", "right"}, optional) – Side of each interval to treat as closed.

  • label ({"left", "right"}, optional) – Side of each interval to use for labeling.

  • origin ({'epoch', 'start', 'start_day', 'end', 'end_day'}, pd.Timestamp, datetime.datetime, np.datetime64, or cftime.datetime, default 'start_day') – The datetime on which to adjust the grouping. The timezone of origin must match the timezone of the index.

    If a datetime is not used, these values are also supported: - ‘epoch’: origin is 1970年01月01日 - ‘start’: origin is the first value of the timeseries - ‘start_day’: origin is the first day at midnight of the timeseries - ‘end’: origin is the last value of the timeseries - ‘end_day’: origin is the ceiling midnight of the last day

  • offset (pd.Timedelta, datetime.timedelta, or str, default is None) – An offset timedelta added to the origin.

  • restore_coord_dims (bool, optional) – If True, also restore the dimension order of multi-dimensional coordinates.

  • **indexer_kwargs (str, datetime.timedelta, pd.Timedelta, pd.DateOffset, or Resampler) – The keyword arguments form of indexer. One of indexer or indexer_kwargs must be provided.

Returns:

resampled (core.resample.DataArrayResample) – This object resampled.

Examples

Downsample monthly time-series data to seasonal data:

>>> da = xr.DataArray(
...  np.linspace(0, 11, num=12),
...  coords=[
...  pd.date_range(
...  "1999年12月15日",
...  periods=12,
...  freq=pd.DateOffset(months=1),
...  )
...  ],
...  dims="time",
... )
>>> da
<xarray.DataArray (time: 12)> Size: 96B
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11.])
Coordinates:
 * time (time) datetime64[us] 96B 1999年12月15日 2000年01月15日 ... 2000年11月15日
>>> da.resample(time="QS-DEC").mean()
<xarray.DataArray (time: 4)> Size: 32B
array([ 1., 4., 7., 10.])
Coordinates:
 * time (time) datetime64[us] 32B 1999年12月01日 2000年03月01日 ... 2000年09月01日

Upsample monthly time-series data to daily data:

>>> da.resample(time="1D").interpolate("linear") # +doctest: ELLIPSIS
<xarray.DataArray (time: 337)> Size: 3kB
array([ 0. , 0.03225806, 0.06451613, 0.09677419, 0.12903226,
 0.16129032, 0.19354839, 0.22580645, 0.25806452, 0.29032258,
 0.32258065, 0.35483871, 0.38709677, 0.41935484, 0.4516129 ,
 0.48387097, 0.51612903, 0.5483871 , 0.58064516, 0.61290323,
 0.64516129, 0.67741935, 0.70967742, 0.74193548, 0.77419355,
 0.80645161, 0.83870968, 0.87096774, 0.90322581, 0.93548387,
 0.96774194, 1. , ...,
 9. , 9.03333333, 9.06666667, 9.1 , 9.13333333,
 9.16666667, 9.2 , 9.23333333, 9.26666667, 9.3 ,
 9.33333333, 9.36666667, 9.4 , 9.43333333, 9.46666667,
 9.5 , 9.53333333, 9.56666667, 9.6 , 9.63333333,
 9.66666667, 9.7 , 9.73333333, 9.76666667, 9.8 ,
 9.83333333, 9.86666667, 9.9 , 9.93333333, 9.96666667,
 10. , 10.03225806, 10.06451613, 10.09677419, 10.12903226,
 10.16129032, 10.19354839, 10.22580645, 10.25806452, 10.29032258,
 10.32258065, 10.35483871, 10.38709677, 10.41935484, 10.4516129 ,
 10.48387097, 10.51612903, 10.5483871 , 10.58064516, 10.61290323,
 10.64516129, 10.67741935, 10.70967742, 10.74193548, 10.77419355,
 10.80645161, 10.83870968, 10.87096774, 10.90322581, 10.93548387,
 10.96774194, 11. ])
Coordinates:
 * time (time) datetime64[us] 3kB 1999年12月15日 1999年12月16日 ... 2000年11月15日

Limit scope of upsampling method

>>> da.resample(time="1D").nearest(tolerance="1D")
<xarray.DataArray (time: 337)> Size: 3kB
array([ 0., 0., nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
 nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
 nan, nan, nan, nan, 1., 1., 1., nan, nan, nan, nan, nan, nan,
 nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
 nan, nan, nan, nan, nan, nan, nan, nan, nan, 2., 2., 2., nan,
 nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
 nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 3.,
 3., 3., nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
 nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
 nan, nan, nan, nan, 4., 4., 4., nan, nan, nan, nan, nan, ...,
 nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
 nan, nan, nan, nan, nan, 10., 10., 10., nan, nan, nan, nan, nan,
 nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
 nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 11., 11.])
Coordinates:
 * time (time) datetime64[us] 3kB 1999年12月15日 1999年12月16日 ... 2000年11月15日

References

On this page