| 1467 | return type(self)(index, self.dim, level_coords_dtype=level_coords_dtype) |
| 1468 | |
| 1469 | def rename(self, name_dict, dims_dict): |
| 1470 | if not set(self.index.names) & set(name_dict) and self.dim not in dims_dict: |
| 1471 | return self |
| 1472 | |
| 1473 | # pandas 1.3.0: could simply do `self.index.rename(names_dict)` |
| 1474 | new_names = [name_dict.get(k, k) for k in self.index.names] |
| 1475 | index = self.index.rename(new_names) |
| 1476 | |
| 1477 | new_dim = dims_dict.get(self.dim, self.dim) |
| 1478 | new_level_coords_dtype = dict( |
| 1479 | zip(new_names, self.level_coords_dtype.values(), strict=True) |
| 1480 | ) |
| 1481 | return self._replace( |
| 1482 | index, dim=new_dim, level_coords_dtype=new_level_coords_dtype |
| 1483 | ) |
| 1484 | |
| 1485 | |
| 1486 | class CoordinateTransformIndex(Index): |