pandas.Index.searchsorted¶

Index.
searchsorted
(self, value, side='left', sorter=None)[source]¶ Find indices where elements should be inserted to maintain order.
Find the indices into a sorted Index self such that, if the corresponding elements in value were inserted before the indices, the order of self would be preserved.
Note
The Index must be monotonically sorted, otherwise wrong locations will likely be returned. Pandas does not check this for you.
 Parameters
 valuearray_like
Values to insert into self.
 side{‘left’, ‘right’}, optional
If ‘left’, the index of the first suitable location found is given. If ‘right’, return the last such index. If there is no suitable index, return either 0 or N (where N is the length of self).
 sorter1D array_like, optional
Optional array of integer indices that sort self into ascending order. They are typically the result of
np.argsort
.
 Returns
 int or array of int
A scalar or array of insertion points with the same shape as value.
Changed in version 0.24.0: If value is a scalar, an int is now always returned. Previously, scalar inputs returned an 1item array for
Series
andCategorical
.
See also
Notes
Binary search is used to find the required insertion points.
Examples
>>> x = pd.Series([1, 2, 3]) >>> x 0 1 1 2 2 3 dtype: int64
>>> x.searchsorted(4) 3
>>> x.searchsorted([0, 4]) array([0, 3])
>>> x.searchsorted([1, 3], side='left') array([0, 2])
>>> x.searchsorted([1, 3], side='right') array([1, 3])
>>> x = pd.Categorical(['apple', 'bread', 'bread', 'cheese', 'milk'], ordered=True) [apple, bread, bread, cheese, milk] Categories (4, object): [apple < bread < cheese < milk]
>>> x.searchsorted('bread') 1
>>> x.searchsorted(['bread'], side='right') array([3])
If the values are not monotonically sorted, wrong locations may be returned:
>>> x = pd.Series([2, 1, 3]) >>> x.searchsorted(1) 0 # wrong result, correct would be 1