| 1595 | return self._obj._replace_maybe_drop_dims(reordered) |
| 1596 | |
| 1597 | def _restore_dim_order(self, stacked: DataArray) -> DataArray: |
| 1598 | def lookup_order(dimension): |
| 1599 | for grouper in self.groupers: |
| 1600 | if dimension == grouper.name and grouper.group.ndim == 1: |
| 1601 | (dimension,) = grouper.group.dims |
| 1602 | if dimension in self._obj.dims: |
| 1603 | axis = self._obj.get_axis_num(dimension) |
| 1604 | else: |
| 1605 | axis = 1e6 # some arbitrarily high value |
| 1606 | return axis |
| 1607 | |
| 1608 | new_order = sorted(stacked.dims, key=lookup_order) |
| 1609 | stacked = stacked.transpose( |
| 1610 | *new_order, transpose_coords=self._restore_coord_dims |
| 1611 | ) |
| 1612 | return stacked |
| 1613 | |
| 1614 | def map( |
| 1615 | self, |