From 0db3e023cbc0484ab82866113ebadee4dd4818eb Mon Sep 17 00:00:00 2001 From: tp Date: Fri, 15 Jun 2018 08:15:21 +0100 Subject: [PATCH] avoid unnecessary Categorical copy --- pandas/core/indexes/category.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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