Description
Is your feature request related to a problem?
Currently .sel()
accepts two options method
and tolerance
. These are relevant for default (pandas) indexes but not necessarily for other, custom indexes.
It would be also useful for custom indexes to expose their own selection options, e.g.,
- index query optimization like the
dualtree
flag of sklearn.neighbors.KDTree.query - k-nearest neighbors selection with the creation of a new "k" dimension (+ coordinate / index) with user-defined name and size.
From #3223, it would be nice if we could also pass distinct options values per index.
What would be a good API for that?
Describe the solution you'd like
Some ideas:
A. Allow passing a tuple (labels, options_dict)
as indexer value
ds.sel(x=([0, 2], {"method": "nearest"}), y=3)
B. Expose an options
kwarg that would accept a nested dict
ds.sel(x=[0, 2], y=3, options={"x": {"method": "nearest"}})
Option A does not look very readable. Option B is slightly better, although the nested dictionary is not great.
Any other ideas? Some sort of context manager? Some Index
specific API?
Describe alternatives you've considered
The API proposed in #3223 would look great if method
and tolerance
were the only accepted options, but less so for arbitrary options.
Additional context
No response