-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: rename_vars to dimension coordinate does not create an index #6229
Comments
This has been discussed in #4825. A third option for Re your example, in #5692 data_renamed
# <xarray.DataArray (x: 3)>
# array([5, 6, 7])
# Coordinates:
# x (x) int64 1 2 3 Instead, it should be possible to directly set an index for the # API has still to be defined
data_indexed = data.set_index("c", index_cls=xr.PandasIndex)
data_indexed.sel(c=[1, 2])
# <xarray.DataArray (x: 2)>
# array([5, 6])
# Coordinates:
# * c (x) int64 1 2 |
I have code that relied on automatic index creation through rename and some downstream code broke. I think we need to address this through a warning or error so that users can be alerted that behaviour has changed. |
This is done in #6999. Would it close this issue? |
A warning is fine by me. |
Not anymore with v2022.6.0. |
Then feel free to close this issue with your PR :) |
What happened?
We used
Data{set,Array}.rename{_vars}({coord: dim_coord})
to make a coordinate a dimension coordinate (instead ofset_index
).This results in the coordinate correctly being displayed as a dimension coordinate (with the *) but it does not create an index, such that further operations like
sel
fail with a strangeKeyError
.What did you expect to happen?
I expect one of two things to be true:
rename{_vars}
does not allow setting dimension coordinates (raises Error and tells you to use set_index)rename{_vars}
checks for this occasion and sets the index correctlyMinimal Complete Verifiable Example
Relevant log output
No response
Anything else we need to know?
No response
Environment
INSTALLED VERSIONS
commit: None
python: 3.9.1 (default, Jan 13 2021, 15:21:08)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
python-bits: 64
OS: Linux
OS-release: 3.10.0-1160.49.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.0
libnetcdf: 4.7.4
xarray: 0.20.2
pandas: 1.3.5
numpy: 1.21.5
scipy: 1.7.3
netCDF4: 1.5.8
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: None
bottleneck: None
dask: None
distributed: None
matplotlib: 3.5.1
cartopy: None
seaborn: None
numbagg: None
fsspec: None
cupy: None
pint: None
sparse: None
setuptools: 49.2.1
pip: 22.0.2
conda: None
pytest: 6.2.5
IPython: 8.0.0
sphinx: None
The text was updated successfully, but these errors were encountered: