xarray.Dataset.stack#

Dataset.stack(dimensions=None, create_index=True, index_cls=<class 'xarray.core.indexes.PandasMultiIndex'>, **dimensions_kwargs)[source]#

Stack any number of existing dimensions into a single new dimension.

New dimensions will be added at the end, and by default the corresponding coordinate variables will be combined into a MultiIndex.

Parameters:
  • dimensions (mapping of hashable to sequence of hashable) – Mapping of the form new_name=(dim1, dim2, …). Names of new dimensions, and the existing dimensions that they replace. An ellipsis (…) will be replaced by all unlisted dimensions. Passing a list containing an ellipsis (stacked_dim=[…]) will stack over all dimensions.

  • create_index (bool or None, default: True) –

    • True: create a multi-index for each of the stacked dimensions.

    • False: don’t create any index.

    • None. create a multi-index only if exactly one single (1-d) coordinate index is found for every dimension to stack.

  • index_cls (Index-class, default: PandasMultiIndex) – Can be used to pass a custom multi-index type (must be an Xarray index that implements .stack()). By default, a pandas multi-index wrapper is used.

  • **dimensions_kwargs – The keyword arguments form of dimensions. One of dimensions or dimensions_kwargs must be provided.

Returns:

stacked (Dataset) – Dataset with stacked data.

See also

Dataset.unstack