# xarray.DataArray.unstack

`DataArray.``unstack`(dim: Union[Hashable, Sequence[Hashable], None] = None, fill_value: Any = <NA>, sparse: bool = False) → xarray.core.dataarray.DataArray

  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 = 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

  See also

  `DataArray.stack()`