xarray.DataTree.cumsum (original) (raw)

DataTree.cumsum(dim=None, *, skipna=None, keep_attrs=None, **kwargs)[source]#

Reduce this DataTree’s data by applying cumsum along some dimension(s).

Parameters:

Returns:

reduced (DataTree) – New DataTree with cumsum applied to its data and the indicated dimension(s) removed

Notes

Non-numeric variables will be removed prior to reducing.

Note that the methods on the cumulative method are more performant (with numbagg installed) and better supported. cumsum and cumprod may be deprecated in the future.

Examples

dt = xr.DataTree( ... xr.Dataset( ... data_vars=dict(foo=("time", np.array([1, 2, 3, 0, 2, np.nan]))), ... coords=dict( ... time=( ... "time", ... pd.date_range("2001-01-01", freq="ME", periods=6), ... ), ... labels=("time", np.array(["a", "b", "c", "c", "b", "a"])), ... ), ... ), ... ) dt <xarray.DataTree> Group: / Dimensions: (time: 6) Coordinates: * time (time) datetime64[ns] 48B 2001-01-31 2001-02-28 ... 2001-06-30 labels (time) <U1 24B 'a' 'b' 'c' 'c' 'b' 'a' Data variables: foo (time) float64 48B 1.0 2.0 3.0 0.0 2.0 nan

dt.cumsum() <xarray.DataTree> Group: / Dimensions: (time: 6) Dimensions without coordinates: time Data variables: foo (time) float64 48B 1.0 3.0 6.0 6.0 8.0 8.0

Use skipna to control whether NaNs are ignored.

dt.cumsum(skipna=False) <xarray.DataTree> Group: / Dimensions: (time: 6) Dimensions without coordinates: time Data variables: foo (time) float64 48B 1.0 3.0 6.0 6.0 8.0 nan