home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

1 row where issue = 1364911775 and user = 4160723 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: created_at (date), updated_at (date)

user 1

  • benbovy · 1 ✖

issue 1

  • Cannot re-index or align objects with conflicting indexes · 1 ✖

author_association 1

  • MEMBER 1
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
1240532341 https://github.com/pydata/xarray/issues/7005#issuecomment-1240532341 https://api.github.com/repos/pydata/xarray/issues/7005 IC_kwDOAMm_X85J8QV1 benbovy 4160723 2022-09-08T10:32:31Z 2022-09-08T10:32:31Z MEMBER

Hi @jamesstidard,

causes a ValueError I am struggling to interpret.

I agree that the error message is not very informative. This could be improved.

The problem in your example is located here:

python def map_coords(ds, *, name, mapping): ... ds.coords[name] = xr.DataArray(new_values, coords=coord.coords) ...

Since v2022.6.0, multi-index level coordinates are real coordinates. What happens is that when you update "x_one" it invalidates the multi-index "x" - "x_one" - "x_two" in the DataArray:

```python ... map_coords(mda, name="z", mapping={0: "zero", 1: "one", 2: "two"}). # success map_coords(mda, name="x_one", mapping={"a": "aa", "b": "bb", "c": "cc"}) # success

the 'x', 'x_one' and 'x_two' indexes are all equal

mda.xindexes["x_one"].equals(mda.xindexes["x"]) and mda.xindexes["x_one"].equals(mda.xindexes["x_two"])

True

the 'x' and 'x_two' indexes are identical, but not the 'x_one' index!

mda.xindexes["x"] is mda.xindexes["x_two"]

True

mda.xindexes["x"] is mda.xindexes["x_one"]

False

```

Which explains the alignment error when you further try to update the DataArray.

I'm actually surprised that it doesn't raise any error at that point, like this:

```python mda = xr.DataArray(np.random.rand(6, 6, 3), [("x", midx), ("y", midy), ("z", range(3))]) mda.coords["x_two"] = ("x", range(6))

ValueError: cannot set or update variable(s) 'x_two', which would corrupt the following

index built from coordinates 'x', 'x_one', 'x_two':

<xarray.core.indexes.PandasMultiIndex object at 0x1689cc190>

```

It seems like a bug.

Either way, you shouldn't try updating a single coordinate that is part of a multi-coordinate index, which is assumed immutable. Instead, you could use reset_index/set_index before/after updating the labels of one level coordinate. You could also replace the whole index and its coordinates at once (example below). I wouldn't rely too much on the latter option, though, as such special case for pd.MultiIndex might eventually be deprecated in Xarray.

python new_midx = midx.set_levels(["aa", "bb", "cc"], level="x_one") mda.coords["x"] = new_midx

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Cannot re-index or align objects with conflicting indexes 1364911775

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [performed_via_github_app] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
);
CREATE INDEX [idx_issue_comments_issue]
    ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
    ON [issue_comments] ([user]);
Powered by Datasette · Queries took 39.596ms · About: xarray-datasette