Skip to content

Commit 28aa96a

Browse files
author
ahuang11
committed
Revise based on comments
1 parent 81d4002 commit 28aa96a

File tree

2 files changed

+13
-15
lines changed

2 files changed

+13
-15
lines changed

xarray/core/dataarray.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4420,23 +4420,23 @@ def query(
44204420

44214421
def drop_duplicates(
44224422
self,
4423-
dims: Union[Hashable, Sequence[Hashable]] = None,
4423+
dims: Union[Hashable, Iterable[Hashable]] = None,
44244424
keep: Union[
44254425
str,
44264426
bool,
44274427
] = "first",
44284428
):
4429-
"""Returns a new data array with duplicate dimension values removed.
4429+
"""Returns a new DataArray with duplicate dimension values removed.
44304430
44314431
Parameters
44324432
----------
44334433
dims : dimension label or sequence of labels, optional
44344434
Only consider certain dimensions for identifying duplicates, by
4435-
default use all of the columns.
4435+
default use all dimensions.
44364436
keep : {"first", "last", False}, default: "first"
44374437
Determines which duplicates (if any) to keep.
4438-
- ``first`` : Drop duplicates except for the first occurrence.
4439-
- ``last`` : Drop duplicates except for the last occurrence.
4438+
- ``"first"`` : Drop duplicates except for the first occurrence.
4439+
- ``"last"`` : Drop duplicates except for the last occurrence.
44404440
- False : Drop all duplicates.
44414441
44424442
Returns

xarray/core/dataset.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7076,7 +7076,7 @@ def query(
70767076

70777077
def drop_duplicates(
70787078
self,
7079-
dims: Union[None, Hashable, Sequence[Hashable]] = None,
7079+
dims: Union[Hashable, Iterable[Hashable]] = None,
70807080
keep: Union[str, bool] = "first",
70817081
):
70827082
"""Returns a new dataset with duplicate dimension values removed.
@@ -7085,11 +7085,11 @@ def drop_duplicates(
70857085
----------
70867086
dims : dimension label or sequence of labels, optional
70877087
Only consider certain dimensions for identifying duplicates, by
7088-
default use all of the columns.
7088+
default use all dimensions.
70897089
keep : {"first", "last", False}, default: "first"
70907090
Determines which duplicates (if any) to keep.
7091-
- ``first`` : Drop duplicates except for the first occurrence.
7092-
- ``last`` : Drop duplicates except for the last occurrence.
7091+
- ``"first"`` : Drop duplicates except for the first occurrence.
7092+
- ``"last"`` : Drop duplicates except for the last occurrence.
70937093
- False : Drop all duplicates.
70947094
70957095
Returns
@@ -7103,14 +7103,12 @@ def drop_duplicates(
71037103
else:
71047104
dims = list(dims)
71057105

7106-
new = self.copy(deep=False)
7106+
indexes = {}
71077107
for dim in dims:
71087108
if dim not in self.dims:
7109-
raise ValueError("%s must be a single dataset dimension" % dim)
7110-
index = new.get_index(dim).duplicated(keep=keep)
7111-
new = new.isel(**{dim: ~index})
7112-
7113-
return new
7109+
raise ValueError(f"'{dim}' not found in dimensions")
7110+
indexes[dim] = ~self.get_index(dim).duplicated(keep=keep)
71147111

7112+
return self.isel(indexes)
71157113

71167114
ops.inject_all_ops_and_reduce_methods(Dataset, array_only=False)

0 commit comments

Comments
 (0)