xarray.DataArray.unstack

DataArray.unstack(dim: Union[Hashable, Sequence[Hashable], None] = None) → xarray.core.dataarray.DataArray

Unstack existing dimensions corresponding to MultiIndexes into multiple new dimensions.

New dimensions will be added at the end.

Parameters
dimhashable or sequence of hashable, 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]],
           codes=[[0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]],
           names=['x', 'y'])
>>> roundtripped = stacked.unstack()
>>> arr.identical(roundtripped)
True