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 690268366,MDU6SXNzdWU2OTAyNjgzNjY=,4397,Unstack non-index coordinate,38673295,open,0,,,2,2020-09-01T16:04:51Z,2022-04-28T15:13:37Z,,NONE,,,,"**What happened**: Non-indexed coordinates are not unstacked correctly. The example below should be self-explanatory. In the example below, I create a surface of the torus which should be used for some calculation for each point - therefore I have to use multi-index. The surface is given by the set of (R, Z) -- indexed by `pol_idx` -- which is the same for each toroidal angle `phi`. At the end of the day I would like to have the mesh of ('phi', 'pol_idx'). **What you expected to happen**: `ds.stack(multiindex=(""a"", ""b"")`).unstack(""multindex"")` should return `ds`. **Minimal Complete Verifiable Example**: ```python theta = np.linspace(0, np.pi) R0 = 1 grid = xr.Dataset(coords={""R"": (""pol_idx"", R0 * np.cos(theta)), ""Z"": (""pol_idx"", R0 * np.sin(theta)), ""phi"": np.linspace(0, 2*np.pi, N_phi_points, endpoint=False)}) > > Dimensions: (phi: 256, pol_idx: 50) > Coordinates: > R (pol_idx) float64 1.0 0.9979 0.9918 0.9816 ... -0.9918 -0.9979 -1.0 > Z (pol_idx) float64 0.0 0.06407 0.1279 ... 0.1279 0.06407 1.225e-16 > * phi (phi) float64 0.0 0.02454 0.04909 0.07363 ... 6.21 6.234 6.259 > Dimensions without coordinates: pol_idx > Data variables: > *empty* grid = grid.stack(index=(""pol_idx"", ""phi"")) > > Dimensions: (index: 12800) > Coordinates: > R (index) float64 1.0 1.0 1.0 1.0 1.0 ... -1.0 -1.0 -1.0 -1.0 -1.0 > Z (index) float64 0.0 0.0 0.0 0.0 ... 1.225e-16 1.225e-16 1.225e-16 > * index (index) MultiIndex > - pol_idx (index) int64 0 0 0 0 0 0 0 0 0 0 ... 49 49 49 49 49 49 49 49 49 49 > - phi (index) float64 0.0 0.02454 0.04909 0.07363 ... 6.21 6.234 6.259 > Data variables: > *empty* # Here I would like to perform some calculation on the prepared grid over the multiindex. grid = grid.unstack(""index"") > > Dimensions: (phi: 256, pol_idx: 50) > Coordinates: > R (pol_idx, phi) float64 1.0 1.0 1.0 1.0 1.0 ... -1.0 -1.0 -1.0 -1.0 > Z (pol_idx, phi) float64 0.0 0.0 0.0 ... 1.225e-16 1.225e-16 > * pol_idx (pol_idx) int64 0 1 2 3 4 5 6 7 8 9 ... 41 42 43 44 45 46 47 48 49 > * phi (phi) float64 0.0 0.02454 0.04909 0.07363 ... 6.21 6.234 6.259 > Data variables: > *empty* ``` **Comment**: I am not sure whether this is a bug. However, I find this behaviour counterintuitive. **Environment**:
Output of xr.show_versions() INSTALLED VERSIONS ------------------ commit: None python: 3.7.4 (default, Aug 13 2019, 20:35:49) [GCC 7.3.0] python-bits: 64 OS: Linux OS-release: 4.15.0-112-generic machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: en_US.UTF-8 libhdf5: 1.10.4 libnetcdf: 4.6.1 xarray: 0.14.1 pandas: 0.25.1 numpy: 1.17.2 scipy: 1.3.1 netCDF4: 1.4.2 pydap: None h5netcdf: 0.7.4 h5py: 2.9.0 Nio: None zarr: None cftime: 1.0.4.2 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: 1.2.1 dask: 2.5.2 distributed: 2.5.2 matplotlib: 3.1.3 cartopy: None seaborn: 0.9.0 numbagg: None setuptools: 41.4.0 pip: 19.2.3 conda: 4.8.3 pytest: 5.2.1 IPython: 7.8.0 sphinx: 2.2.0
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4397/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue