Skip to content

Commit fa378e2

Browse files
author
tp
committed
CLN: make CategoricalIndex._create_categorical a classmethod
1 parent 5fdaa97 commit fa378e2

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

pandas/core/indexes/base.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1130,7 +1130,8 @@ def to_frame(self, index=True):
11301130
"""
11311131

11321132
from pandas import DataFrame
1133-
result = DataFrame(self._shallow_copy(), columns=[self.name or 0])
1133+
name = self.name or 0
1134+
result = DataFrame({name: self.values.copy()})
11341135

11351136
if index:
11361137
result.index = self

pandas/core/indexes/category.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,11 @@ def __new__(cls, data=None, categories=None, ordered=None, dtype=None,
8585
name = data.name
8686

8787
if isinstance(data, ABCCategorical):
88-
data = cls._create_categorical(cls, data, categories, ordered,
88+
data = cls._create_categorical(data, categories, ordered,
8989
dtype)
9090
elif isinstance(data, CategoricalIndex):
9191
data = data._data
92-
data = cls._create_categorical(cls, data, categories, ordered,
92+
data = cls._create_categorical(data, categories, ordered,
9393
dtype)
9494
else:
9595

@@ -99,7 +99,7 @@ def __new__(cls, data=None, categories=None, ordered=None, dtype=None,
9999
if data is not None or categories is None:
100100
cls._scalar_data_error(data)
101101
data = []
102-
data = cls._create_categorical(cls, data, categories, ordered,
102+
data = cls._create_categorical(data, categories, ordered,
103103
dtype)
104104

105105
if copy:
@@ -136,8 +136,8 @@ def _create_from_codes(self, codes, categories=None, ordered=None,
136136
ordered=self.ordered)
137137
return CategoricalIndex(cat, name=name)
138138

139-
@staticmethod
140-
def _create_categorical(self, data, categories=None, ordered=None,
139+
@classmethod
140+
def _create_categorical(cls, data, categories=None, ordered=None,
141141
dtype=None):
142142
"""
143143
*this is an internal non-public method*
@@ -155,7 +155,7 @@ def _create_categorical(self, data, categories=None, ordered=None,
155155
-------
156156
Categorical
157157
"""
158-
if (isinstance(data, (ABCSeries, type(self))) and
158+
if (isinstance(data, (cls, ABCSeries)) and
159159
is_categorical_dtype(data)):
160160
data = data.values
161161

@@ -179,7 +179,7 @@ def _simple_new(cls, values, name=None, categories=None, ordered=None,
179179
dtype=None, **kwargs):
180180
result = object.__new__(cls)
181181

182-
values = cls._create_categorical(cls, values, categories, ordered,
182+
values = cls._create_categorical(values, categories, ordered,
183183
dtype=dtype)
184184
result._data = values
185185
result.name = name
@@ -236,7 +236,7 @@ def _is_dtype_compat(self, other):
236236
if not is_list_like(values):
237237
values = [values]
238238
other = CategoricalIndex(self._create_categorical(
239-
self, other, categories=self.categories, ordered=self.ordered))
239+
other, categories=self.categories, ordered=self.ordered))
240240
if not other.isin(values).all():
241241
raise TypeError("cannot append a non-category item to a "
242242
"CategoricalIndex")
@@ -798,7 +798,7 @@ def _evaluate_compare(self, other):
798798
other = other._values
799799
elif isinstance(other, Index):
800800
other = self._create_categorical(
801-
self, other._values, categories=self.categories,
801+
other._values, categories=self.categories,
802802
ordered=self.ordered)
803803

804804
if isinstance(other, (ABCCategorical, np.ndarray,

0 commit comments

Comments
 (0)