xarray.Dataset.drop_duplicates#

Dataset.drop_duplicates(dim, *, keep='first')[source]#

Return 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 duplicates (if any) to keep. - "first" : Drop duplicates except for the first occurrence. - "last" : Drop duplicates except for the last occurrence. - False : Drop all duplicates.

Returns:

Dataset

Examples

>>> ds = xr.Dataset(
...     {"temperature": ("time", [10, 12, 14, 16])},
...     coords={"time": [0, 1, 1, 2]},
... )
>>> ds
<xarray.Dataset> Size: 64B
Dimensions:      (time: 4)
Coordinates:
  * time         (time) int64 32B 0 1 1 2
Data variables:
    temperature  (time) int64 32B 10 12 14 16

By default, the first value for each coordinate label is kept:

>>> ds.drop_duplicates("time")
<xarray.Dataset> Size: 48B
Dimensions:      (time: 3)
Coordinates:
  * time         (time) int64 24B 0 1 2
Data variables:
    temperature  (time) int64 24B 10 12 16

Use keep="last" to retain the last value for a repeated label:

>>> ds.drop_duplicates("time", keep="last")
<xarray.Dataset> Size: 48B
Dimensions:      (time: 3)
Coordinates:
  * time         (time) int64 24B 0 1 2
Data variables:
    temperature  (time) int64 24B 10 14 16

Use keep=False to discard every occurrence of duplicated labels:

>>> ds.drop_duplicates("time", keep=False)
<xarray.Dataset> Size: 32B
Dimensions:      (time: 2)
Coordinates:
  * time         (time) int64 16B 0 2
Data variables:
    temperature  (time) int64 16B 10 16