@@ -293,15 +293,6 @@ def __init__(self, values, categories=None, ordered=None, dtype=None,
293
293
294
294
# sanitize input
295
295
if is_categorical_dtype (values ):
296
-
297
- # we are either a Series or a CategoricalIndex
298
- if isinstance (values , (ABCSeries , ABCCategoricalIndex )):
299
- values = values ._values
300
-
301
- if ordered is None :
302
- ordered = values .ordered
303
- if categories is None :
304
- categories = values .categories
305
296
values = values .get_values ()
306
297
307
298
elif isinstance (values , (ABCIndexClass , ABCSeries )):
@@ -334,7 +325,7 @@ def __init__(self, values, categories=None, ordered=None, dtype=None,
334
325
codes , categories = factorize (values , sort = True )
335
326
except TypeError :
336
327
codes , categories = factorize (values , sort = False )
337
- if ordered :
328
+ if dtype . ordered :
338
329
# raise, as we don't have a sortable data structure and so
339
330
# the user should give us one by specifying categories
340
331
raise TypeError ("'values' is not ordered, please "
@@ -348,7 +339,7 @@ def __init__(self, values, categories=None, ordered=None, dtype=None,
348
339
349
340
if dtype .categories is None :
350
341
# we're inferring from values
351
- dtype = CategoricalDtype (categories , ordered )
342
+ dtype = CategoricalDtype (categories , dtype . ordered )
352
343
353
344
else :
354
345
# there were two ways if categories are present
0 commit comments