Заменить координаты xarray другой координатой

Я пытаюсь заменить две координаты одинаковой длины в наборе данных xarray.Dat, используя одну координату для них обоих. Меня не волнуют старые координаты или их значения; Я просто хочу заменить их. Есть ли удобный способ для этого?

import xarray as xr
ds = xr.Dataset({
    "a": ("a_coord", [0, 1, 2]),
    "b": ("b_coord", [50, 10, 20]),
    "a_coord": [4, 8, 9],
    "b_coord": [3, 1, 4],
    "new_coord": [0, 1, 2],
})
# Get rid of a_coord and b_coord and replace both with new_coord, so a and b
# have new_coord as coordinate.
# But how?

Я старался rename, но возвращает ошибку конфликта (поскольку new_coord уже существует).

ds.rename({
    "a_coord": "new_coord",
    "b_coord": "new_coord",
})

Должен ли я назначать новую координату явно каждой переменной данных, которая зависела от одной из старых координат? Так как у меня есть много переменных данных (не только a и b) и других координат, это может стать грязным.

1 ответ

Решение

Вам нужно сначала сбросить индекс:

ds.reset_index(['a_coord', 'b_coord'], drop = True, inplace = True)
ds['a']= ds.a.rename({'a_coord': 'new_coord'})
ds['b']= ds.b.rename({'b_coord': 'new_coord'})
Другие вопросы по тегам