Skip to content

Commit 54ab47e

Browse files
committed
BUG: CategoricalIndex allows reindexing with non-unique CategoricalIndex
1 parent 0e7cf48 commit 54ab47e

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

pandas/core/indexes/category.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,7 @@ def reindex(self, target, method=None, level=None, limit=None,
522522

523523
target = ibase.ensure_index(target)
524524

525-
if not is_categorical_dtype(target) and not target.is_unique:
525+
if not target.is_unique:
526526
raise ValueError("cannot reindex with a non-unique indexer")
527527

528528
indexer, missing = self.get_indexer_non_unique(np.array(target))

pandas/tests/indexes/test_category.py

+7
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,13 @@ def test_reindex_dtype(self):
540540
tm.assert_numpy_array_equal(indexer,
541541
np.array([0, 3, 2], dtype=np.intp))
542542

543+
with pytest.raises(ValueError, match='non-unique indexer'):
544+
c.reindex(['a', 'a', 'c'])
545+
546+
with pytest.raises(ValueError, match='non-unique indexer'):
547+
c.reindex(CategoricalIndex(['a', 'a', 'c'],
548+
categories=['a', 'b', 'c', 'd']))
549+
543550
def test_reindex_empty_index(self):
544551
# See GH16770
545552
c = CategoricalIndex([])

0 commit comments

Comments
 (0)