MCPcopy Index your code
hub / github.com/pydata/xarray / reorder_levels

Method reorder_levels

xarray/core/dataset.py:5118–5165  ·  view source on GitHub ↗

Rearrange index levels using input order. Parameters ---------- dim_order : dict-like of Hashable to Sequence of int or Hashable, optional Mapping from names matching dimensions and values given by lists representing new level orders. Every given dime

(
        self,
        dim_order: Mapping[Any, Sequence[int | Hashable]] | None = None,
        **dim_order_kwargs: Sequence[int | Hashable],
    )

Source from the content-addressed store, hash-verified

5116 )
5117
5118 def reorder_levels(
5119 self,
5120 dim_order: Mapping[Any, Sequence[int | Hashable]] | None = None,
5121 **dim_order_kwargs: Sequence[int | Hashable],
5122 ) -> Self:
5123 """Rearrange index levels using input order.
5124
5125 Parameters
5126 ----------
5127 dim_order : dict-like of Hashable to Sequence of int or Hashable, optional
5128 Mapping from names matching dimensions and values given
5129 by lists representing new level orders. Every given dimension
5130 must have a multi-index.
5131 **dim_order_kwargs : Sequence of int or Hashable, optional
5132 The keyword arguments form of ``dim_order``.
5133 One of dim_order or dim_order_kwargs must be provided.
5134
5135 Returns
5136 -------
5137 obj : Dataset
5138 Another dataset, with this dataset's data but replaced
5139 coordinates.
5140 """
5141 dim_order = either_dict_or_kwargs(dim_order, dim_order_kwargs, "reorder_levels")
5142 variables = self._variables.copy()
5143 indexes = dict(self._indexes)
5144 new_indexes: dict[Hashable, Index] = {}
5145 new_variables: dict[Hashable, IndexVariable] = {}
5146
5147 for dim, order in dim_order.items():
5148 index = self._indexes[dim]
5149
5150 if not isinstance(index, PandasMultiIndex):
5151 raise ValueError(f"coordinate {dim} has no MultiIndex")
5152
5153 level_vars = {k: self._variables[k] for k in order}
5154 idx = index.reorder_levels(level_vars)
5155 idx_vars = idx.create_variables(level_vars)
5156 new_indexes.update(dict.fromkeys(idx_vars, idx))
5157 new_variables.update(idx_vars)
5158
5159 indexes = {k: v for k, v in self._indexes.items() if k not in new_indexes}
5160 indexes.update(new_indexes)
5161
5162 variables = {k: v for k, v in self._variables.items() if k not in new_variables}
5163 variables.update(new_variables)
5164
5165 return self._replace(variables, indexes=indexes)
5166
5167 def _get_stack_index(
5168 self,

Callers 2

test_reorder_levelsMethod · 0.95
test_reorder_levelsMethod · 0.45

Calls 6

_replaceMethod · 0.95
either_dict_or_kwargsFunction · 0.90
itemsMethod · 0.80
copyMethod · 0.45
create_variablesMethod · 0.45
updateMethod · 0.45

Tested by 2

test_reorder_levelsMethod · 0.76
test_reorder_levelsMethod · 0.36