home / github / issue_comments

Menu
  • GraphQL API
  • Search all tables

issue_comments: 1283038653

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions performed_via_github_app issue
https://github.com/pydata/xarray/pull/7182#issuecomment-1283038653 https://api.github.com/repos/pydata/xarray/issues/7182 1283038653 IC_kwDOAMm_X85MeZ29 4160723 2022-10-18T21:40:49Z 2022-10-18T21:40:49Z MEMBER

I wonder if it is possible to create a generic MultiIndex?

Hmm that could be possible but it think there are just too many possible edge cases for something generic like that.

In your specific example

python ds.set_xindex( ["a", "b"], MultiIndex([("a", PandasIndex), ("b", PandasIndex), (["a", "b"], BallTreeIndex)), )

we could probably use the BallTreeIndex for point-wise indexing (i.e., with ds.sel(a=xr.DataArray(...), b=xr.DataArray(...))) and use the two PandasIndex instances for other kinds of selection (e.g., with slices, scalars, etc.) so there's no conflict, but I doubt this would be what we want in other cases.

I guess your suggestion is a way around the constraint in the Xarray data model that a coordinate cannot have multiple indexes? I'm afraid there's no easy solution that is generic enough. Maybe some cache to avoid rebuilding the indexes? I.e., .set_xindex() doesn't drop the pre-existing index(es) but rather disable them so that it is possible to re-enable them later with another .set_xindex() call (.xindexes only returns the "active" indexes but there may be other "inactive" indexes attached to a dataset).

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  1412901282
Powered by Datasette · Queries took 159.618ms · About: xarray-datasette