Returns a new Dataset with duplicate dimension values removed. Parameters ---------- dim : dimension label or labels Pass `...` to drop duplicates along all dimensions. keep : {"first", "last", False}, default: "first" Determines which duplica
(
self,
dim: Hashable | Iterable[Hashable],
*,
keep: Literal["first", "last", False] = "first",
)
| 9912 | ) |
| 9913 | |
| 9914 | def drop_duplicates( |
| 9915 | self, |
| 9916 | dim: Hashable | Iterable[Hashable], |
| 9917 | *, |
| 9918 | keep: Literal["first", "last", False] = "first", |
| 9919 | ) -> Self: |
| 9920 | """Returns a new Dataset with duplicate dimension values removed. |
| 9921 | |
| 9922 | Parameters |
| 9923 | ---------- |
| 9924 | dim : dimension label or labels |
| 9925 | Pass `...` to drop duplicates along all dimensions. |
| 9926 | keep : {"first", "last", False}, default: "first" |
| 9927 | Determines which duplicates (if any) to keep. |
| 9928 | - ``"first"`` : Drop duplicates except for the first occurrence. |
| 9929 | - ``"last"`` : Drop duplicates except for the last occurrence. |
| 9930 | - False : Drop all duplicates. |
| 9931 | |
| 9932 | Returns |
| 9933 | ------- |
| 9934 | Dataset |
| 9935 | |
| 9936 | See Also |
| 9937 | -------- |
| 9938 | DataArray.drop_duplicates |
| 9939 | """ |
| 9940 | if isinstance(dim, str): |
| 9941 | dims: Iterable = (dim,) |
| 9942 | elif dim is ...: |
| 9943 | dims = self.dims |
| 9944 | elif not isinstance(dim, Iterable): |
| 9945 | dims = [dim] |
| 9946 | else: |
| 9947 | dims = dim |
| 9948 | |
| 9949 | missing_dims = set(dims) - set(self.dims) |
| 9950 | if missing_dims: |
| 9951 | raise ValueError( |
| 9952 | f"Dimensions {tuple(missing_dims)} not found in data dimensions {tuple(self.dims)}" |
| 9953 | ) |
| 9954 | |
| 9955 | indexes = {dim: ~self.get_index(dim).duplicated(keep=keep) for dim in dims} |
| 9956 | return self.isel(indexes) |
| 9957 | |
| 9958 | def convert_calendar( |
| 9959 | self, |