diff --git a/pandas/core/indexes/category.py b/pandas/core/indexes/category.py index 7f2860a963423..93df0d377c4fe 100644 --- a/pandas/core/indexes/category.py +++ b/pandas/core/indexes/category.py @@ -172,7 +172,10 @@ def _create_categorical(self, data, categories=None, ordered=None, data = data.set_ordered(ordered) if isinstance(dtype, CategoricalDtype): # we want to silently ignore dtype='category' - data = data._set_dtype(dtype) + if dtype != data.dtype: + data = data._set_dtype(dtype) + else: + data = data.copy() return data @classmethod