From 4972aff874546d29a58665b1fae862551eefd8b7 Mon Sep 17 00:00:00 2001 From: Patrick Hoefler Date: Fri, 10 Feb 2023 18:21:41 +0100 Subject: [PATCH 1/2] ENH: Do unique check before computing indexer in reindex --- pandas/core/indexes/base.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index 363bfe76d40fb..611473492e624 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -4217,6 +4217,9 @@ def reindex( ) elif self._is_multi: raise ValueError("cannot handle a non-unique multi-index!") + elif not self.is_unique: + # GH#42568 + raise ValueError("cannot reindex on an axis with duplicate labels") else: if method is not None or limit is not None: raise ValueError( @@ -4225,10 +4228,6 @@ def reindex( ) indexer, _ = self.get_indexer_non_unique(target) - if not self.is_unique: - # GH#42568 - raise ValueError("cannot reindex on an axis with duplicate labels") - target = self._wrap_reindex_result(target, indexer, preserve_names) return target, indexer From f6c5a5489244a2a77da8c28497605e8afbc19134 Mon Sep 17 00:00:00 2001 From: Patrick Hoefler Date: Fri, 10 Feb 2023 18:25:05 +0100 Subject: [PATCH 2/2] Refactor --- pandas/core/indexes/base.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index 611473492e624..4e7b64efe7819 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -4221,11 +4221,6 @@ def reindex( # GH#42568 raise ValueError("cannot reindex on an axis with duplicate labels") else: - if method is not None or limit is not None: - raise ValueError( - "cannot reindex a non-unique index " - "with a method or limit" - ) indexer, _ = self.get_indexer_non_unique(target) target = self._wrap_reindex_result(target, indexer, preserve_names)