xarray.DataArray.unstack

DataArray.unstack(dim=None)

Unstack existing dimensions corresponding to MultiIndexes into multiple new dimensions.

New dimensions will be added at the end.

Parameters
dimstr or sequence of str, optional

Dimension(s) over which to unstack. By default unstacks all MultiIndexes.

Returns
unstackedDataArray

Array with unstacked data.

See also

DataArray.stack

Examples

>>> arr = 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]],
           labels=[[0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]],
           names=['x', 'y'])
>>> roundtripped = stacked.unstack()
>>> arr.identical(roundtripped)
True