Skip to content

Commit 5abc06f

Browse files
authored
PERF: Index.searchsorted (#38103)
1 parent 45ac7da commit 5abc06f

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

pandas/core/algorithms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1804,7 +1804,7 @@ def func(arr, indexer, out, fill_value=np.nan):
18041804
# ------------ #
18051805

18061806

1807-
def searchsorted(arr, value, side="left", sorter=None):
1807+
def searchsorted(arr, value, side="left", sorter=None) -> np.ndarray:
18081808
"""
18091809
Find indices where elements should be inserted to maintain order.
18101810
@@ -1853,7 +1853,7 @@ def searchsorted(arr, value, side="left", sorter=None):
18531853

18541854
if (
18551855
isinstance(arr, np.ndarray)
1856-
and is_integer_dtype(arr)
1856+
and is_integer_dtype(arr.dtype)
18571857
and (is_integer(value) or is_integer_dtype(value))
18581858
):
18591859
# if `arr` and `value` have different dtypes, `arr` would be

pandas/core/indexes/extension.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,10 @@ def __getitem__(self, key):
248248
deprecate_ndim_indexing(result)
249249
return result
250250

251+
def searchsorted(self, value, side="left", sorter=None) -> np.ndarray:
252+
# overriding IndexOpsMixin improves performance GH#38083
253+
return self._data.searchsorted(value, side=side, sorter=sorter)
254+
251255
# ---------------------------------------------------------------------
252256

253257
def _check_indexing_method(self, method):

0 commit comments

Comments
 (0)