From a6478af26f64ba0b2234e801a2d66ccd924ac4b1 Mon Sep 17 00:00:00 2001 From: Brock Date: Fri, 8 Oct 2021 14:49:58 -0700 Subject: [PATCH] REF: Share Index.delete --- pandas/core/indexes/base.py | 8 +++++++- pandas/core/indexes/extension.py | 11 ----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index da953fe46ef1d..eb98ae22d335a 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -2493,6 +2493,7 @@ def is_all_dates(self) -> bool: ) return self._is_all_dates + @final @cache_readonly def _is_multi(self) -> bool: """ @@ -6297,7 +6298,12 @@ def delete(self: _IndexT, loc) -> _IndexT: >>> idx.delete([0, 2]) Index(['b'], dtype='object') """ - res_values = np.delete(self._data, loc) + values = self._values + if isinstance(values, np.ndarray): + # TODO(__array_function__): special casing will be unnecessary + res_values = np.delete(values, loc) + else: + res_values = values.delete(loc) return type(self)._simple_new(res_values, name=self.name) def insert(self, loc: int, item) -> Index: diff --git a/pandas/core/indexes/extension.py b/pandas/core/indexes/extension.py index 0baa671162c56..47ae88a52d919 100644 --- a/pandas/core/indexes/extension.py +++ b/pandas/core/indexes/extension.py @@ -198,17 +198,6 @@ def __getitem__(self, key): # --------------------------------------------------------------------- - def delete(self, loc): - """ - Make new Index with passed location(-s) deleted - - Returns - ------- - new_index : Index - """ - arr = self._data.delete(loc) - return type(self)._simple_new(arr, name=self.name) - def repeat(self, repeats, axis=None): nv.validate_repeat((), {"axis": axis}) result = self._data.repeat(repeats, axis=axis)