id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 1384465119,I_kwDOAMm_X85ShULf,7076,Can't unstack concatenated DataArrays,22566757,open,0,,,9,2022-09-24T00:50:09Z,2023-02-21T17:11:35Z,,CONTRIBUTOR,,,,"### What happened? I had a collection of `DataArray`s with a stacked dimension (dimension whose corresponding index is a `MultiIndex`). I concatenated them into a single `DataArray`, then tried to unstack the stacked dimension, which failed. Performing the operations in the other order works (unstacking each `DataArray`, then concatenating the unstacked arrays). ### What did you expect to happen? I expected that concatenating the arrays then unstacking them would produce the same array as unstacking them then concatenating them, but with the possibility of saving the intermediate concatenated-but-still-stacked `DataArray` for later use as a template. ### Minimal Complete Verifiable Example ```Python import pandas as pd import xarray index = pd.MultiIndex.from_product([range(3), range(5)]) arr = xarray.DataArray.from_series(pd.Series(range(15), index=index)).stack(index0=[""level_0"", ""level_1""]) arr.unstack(""index0"") arr2 = xarray.concat([arr, arr], dim=""index2"") arr2.unstack(""index0"") ``` ### MVCE confirmation - [X] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray. - [X] Complete example — the example is self-contained, including all data and the text of any traceback. - [X] Verifiable example — the example copy & pastes into an IPython prompt or [Binder notebook](https://mybinder.org/v2/gh/pydata/xarray/main?urlpath=lab/tree/doc/examples/blank_template.ipynb), returning the result. - [X] New issue — a search of GitHub Issues suggests this is not a duplicate. ### Relevant log output ```Python array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) Coordinates: * level_0 (level_0) int64 0 1 2 * level_1 (level_1) int64 0 1 2 3 4 Traceback (most recent call last): File """", line 1, in File ""~/.conda/envs/plotting/lib/python3.10/site-packages/xarray/core/dataarray.py"", line 2402, in unstack ds = self._to_temp_dataset().unstack(dim, fill_value, sparse) File ""~/.conda/envs/plotting/lib/python3.10/site-packages/xarray/core/dataset.py"", line 4618, in unstack raise ValueError( ValueError: cannot unstack dimensions that do not have exactly one multi-index: ('index0',) ``` ### Anything else we need to know? The eventual problem to which I wish to apply the solution has two stacked dimensions rather than one, but that's likely irrelevant. ### Environment
INSTALLED VERSIONS ------------------ commit: None python: 3.10.6 | packaged by conda-forge | (main, Aug 22 2022, 20:35:26) [GCC 10.4.0] python-bits: 64 OS: Linux OS-release: 3.10.0-1160.76.1.el7.x86_64 machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: ('en_US', 'UTF-8') libhdf5: 1.12.1 libnetcdf: 4.8.1 xarray: 2022.6.0 pandas: 1.4.2 numpy: 1.22.3 scipy: 1.8.0 netCDF4: 1.6.0 pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: 1.5.1.1 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: 3.2.1.post0 bottleneck: 1.3.5 dask: 2022.7.1 distributed: 2022.7.1 matplotlib: 3.5.1 cartopy: 0.20.3 seaborn: 0.12.0 numbagg: None fsspec: 2022.5.0 cupy: None pint: None sparse: None flox: None numpy_groupies: None setuptools: 61.3.1 pip: 22.0.4 conda: 4.14.0 pytest: 7.1.3 IPython: None sphinx: None
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7076/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,reopened,13221727,issue