xarray.DataArray.unstack

DataArray.unstack(dim=None, fill_value=<NA>, sparse=False)

Unstack existing dimensions corresponding to MultiIndexes into multiple new dimensions.

New dimensions will be added at the end.

Parameters
  • dim (hashable or sequence of hashable, optional) – Dimension(s) over which to unstack. By default unstacks all MultiIndexes.

  • fill_value (value to be filled. By default, np.nan) –

  • sparse (use sparse-array if True) –

Returns

unstacked – Array with unstacked data.

Return type

DataArray

Examples

>>> arr = xr.DataArray(
...     np.arange(6).reshape(2, 3),
...     coords=[("x", ["a", "b"]), ("y", [0, 1, 2])],
... )
>>> arr
<xarray.DataArray (x: 2, y: 3)>
array([[0, 1, 2],
       [3, 4, 5]])
Coordinates:
  * x        (x) |S1 'a' 'b'
  * y        (y) int64 0 1 2
>>> stacked = arr.stack(z=("x", "y"))
>>> stacked.indexes["z"]
MultiIndex(levels=[['a', 'b'], [0, 1, 2]],
           codes=[[0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]],
           names=['x', 'y'])
>>> roundtripped = stacked.unstack()
>>> arr.identical(roundtripped)
True