Skip to content

Commit c10020f

Browse files
CLN: remove methods of ExtensionIndex that duplicate base Index (#34163)
1 parent 085af07 commit c10020f

File tree

2 files changed

+2
-43
lines changed

2 files changed

+2
-43
lines changed

Diff for: pandas/core/base.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1257,8 +1257,7 @@ def value_counts(
12571257
def unique(self):
12581258
values = self._values
12591259

1260-
if hasattr(values, "unique"):
1261-
1260+
if not isinstance(values, np.ndarray):
12621261
result = values.unique()
12631262
if self.dtype.kind in ["m", "M"] and isinstance(self, ABCSeries):
12641263
# GH#31182 Series._values returns EA, unpack for backward-compat

Diff for: pandas/core/indexes/extension.py

+1-41
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@
99
from pandas.errors import AbstractMethodError
1010
from pandas.util._decorators import cache_readonly, doc
1111

12-
from pandas.core.dtypes.common import (
13-
ensure_platform_int,
14-
is_dtype_equal,
15-
is_object_dtype,
16-
)
12+
from pandas.core.dtypes.common import is_dtype_equal, is_object_dtype
1713
from pandas.core.dtypes.generic import ABCSeries
1814

1915
from pandas.core.arrays import ExtensionArray
@@ -223,29 +219,14 @@ def __getitem__(self, key):
223219
deprecate_ndim_indexing(result)
224220
return result
225221

226-
def __iter__(self):
227-
return self._data.__iter__()
228-
229222
# ---------------------------------------------------------------------
230223

231-
def __array__(self, dtype=None) -> np.ndarray:
232-
return np.asarray(self._data, dtype=dtype)
233-
234224
def _get_engine_target(self) -> np.ndarray:
235225
# NB: _values_for_argsort happens to match the desired engine targets
236226
# for all of our existing EA-backed indexes, but in general
237227
# cannot be relied upon to exist.
238228
return self._data._values_for_argsort()
239229

240-
@doc(Index.dropna)
241-
def dropna(self, how="any"):
242-
if how not in ("any", "all"):
243-
raise ValueError(f"invalid how option: {how}")
244-
245-
if self.hasnans:
246-
return self._shallow_copy(self._data[~self._isnan])
247-
return self._shallow_copy()
248-
249230
def repeat(self, repeats, axis=None):
250231
nv.validate_repeat(tuple(), dict(axis=axis))
251232
result = self._data.repeat(repeats, axis=axis)
@@ -259,27 +240,6 @@ def _concat_same_dtype(self, to_concat, name):
259240
arr = type(self._data)._concat_same_type(to_concat)
260241
return type(self)._simple_new(arr, name=name)
261242

262-
@doc(Index.take)
263-
def take(self, indices, axis=0, allow_fill=True, fill_value=None, **kwargs):
264-
nv.validate_take(tuple(), kwargs)
265-
indices = ensure_platform_int(indices)
266-
267-
taken = self._assert_take_fillable(
268-
self._data,
269-
indices,
270-
allow_fill=allow_fill,
271-
fill_value=fill_value,
272-
na_value=self._na_value,
273-
)
274-
return type(self)(taken, name=self.name)
275-
276-
def unique(self, level=None):
277-
if level is not None:
278-
self._validate_index_level(level)
279-
280-
result = self._data.unique()
281-
return self._shallow_copy(result)
282-
283243
def _get_unique_index(self, dropna=False):
284244
if self.is_unique and not dropna:
285245
return self

0 commit comments

Comments
 (0)