You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Setting the index to the desired RangeIndex using assign_coords() then works. But I find it a bit problematic that sel() returns an Int64Index even when used with a RangeIndex. Also because Int64Index has been recently deprecated in Pandas 1.4.
What did you expect to happen?
I would have expected the resulting DataArray to be indexed with the same RangeIndex used in sel().
Thanks for the report - I guess RangeIndex was never very thoroughly tested. This may or may not change with #5692 (which is hopefully merged in the near future). So I suggest to wait for this.
We would need to handle pd.RangeIndex (and perhaps range?) label indexers similarly to slice label indexers, i.e., use pd.Index.slice_indexer internally to return integer indexers as slices (*).
Otherwise, label indexers get internally converted to arrays. Note that the conversion to an Int64Index is done in pandas (nothing specific is done on the Xarray side), so I expect that this will be eventually addressed in pandas. This conversion may not be too problematic if we consider this as an implementation detail (although I might be missing some important aspect).
What happened?
First, apology if this is not actually a bug - I'm not too sure of what the intended behaviour should be. But I find this counter-intuitive.
When indexing a
DataArray
that is indexed using aRangeIndex
, the resulting index is anInt64Index
:Setting the index to the desired
RangeIndex
usingassign_coords()
then works. But I find it a bit problematic thatsel()
returns anInt64Index
even when used with aRangeIndex
. Also becauseInt64Index
has been recently deprecated in Pandas 1.4.What did you expect to happen?
I would have expected the resulting
DataArray
to be indexed with the sameRangeIndex
used insel()
.Minimal Complete Verifiable Example
Relevant log output
Anything else we need to know?
No response
Environment
INSTALLED VERSIONS
commit: None
python: 3.8.5 (default, Sep 4 2020, 02:22:02)
[Clang 10.0.0 ]
python-bits: 64
OS: Darwin
OS-release: 20.6.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: None
LANG: None
LOCALE: (None, 'UTF-8')
libhdf5: None
libnetcdf: None
xarray: 0.20.2
pandas: 1.4.0
numpy: 1.22.1
scipy: 1.7.3
netCDF4: None
pydap: None
h5netcdf: None
h5py: None
Nio: None
zarr: None
cftime: None
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: 2021.11.1
cupy: None
pint: None
sparse: None
setuptools: 59.5.0
pip: 21.3.1
conda: None
pytest: 6.2.5
IPython: 8.0.1
sphinx: 4.3.2
The text was updated successfully, but these errors were encountered: