如何对 xarray Dataset/DataArray 的索引进行排序?
How to sort the index of a xarray Dataset/DataArray?
我正在沿时间维度从多个切片创建一个 DataArray
,并在尝试重新采样时偶然发现了 'index must be monotonic for resampling'
错误,我猜这表明我的时间索引未排序。我 concat()
ininated 它们时没有注意顺序。
# TODO: sort instead of raising an error
在出现错误的代码中找到。
我的问题:如何在 DataSet
中对 DataArray
的索引进行排序?我找不到类似 sort_index()
.
的内容
您可以在已排序的索引上重建索引 - .reindex(time=sorted(dataset.time))
不如sort_index()
优雅,但应该可以
编辑:@scottclowe 指出 xarray 自从添加 .sortby()
,所以使用它! http://xarray.pydata.org/en/stable/generated/xarray.DataArray.sortby.html
我必须添加 .values 才能正确排序。我的 time.values 是 datetime64[ns]。 Xarray v0.10.0。
.reindex(time=sorted(dataset.time.values))
现在有一个sortby()方法可以使用。
da = da.sortby('time')
我正在沿时间维度从多个切片创建一个 DataArray
,并在尝试重新采样时偶然发现了 'index must be monotonic for resampling'
错误,我猜这表明我的时间索引未排序。我 concat()
ininated 它们时没有注意顺序。
# TODO: sort instead of raising an error
在出现错误的代码中找到。
我的问题:如何在 DataSet
中对 DataArray
的索引进行排序?我找不到类似 sort_index()
.
您可以在已排序的索引上重建索引 - .reindex(time=sorted(dataset.time))
不如sort_index()
优雅,但应该可以
编辑:@scottclowe 指出 xarray 自从添加 .sortby()
,所以使用它! http://xarray.pydata.org/en/stable/generated/xarray.DataArray.sortby.html
我必须添加 .values 才能正确排序。我的 time.values 是 datetime64[ns]。 Xarray v0.10.0。
.reindex(time=sorted(dataset.time.values))
现在有一个sortby()方法可以使用。
da = da.sortby('time')