pandas.Index.searchsorted — pandas 0.24.0rc1 documentation (original) (raw)

Index. searchsorted(value, side='left', sorter=None)[source]

Find indices where elements should be inserted to maintain order.

Find the indices into a sorted IndexOpsMixin self such that, if the corresponding elements in value were inserted before the indices, the order of self would be preserved.

Parameters: value : array_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). sorter : 1-D 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 1-item array forSeries and Categorical.

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([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])