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.
The Index must be monotonically sorted, otherwise
wrong locations will likely be returned. Pandas does not
check this for you.
Values to insert into self.
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).
Optional array of integer indices that sort self into ascending
order. They are typically the result of np.argsort.
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 for
Series and Categorical.
Binary search is used to find the required insertion points.
>>> x = pd.Series([1, 2, 3])
>>> x.searchsorted([0, 4])
>>> x.searchsorted([1, 3], side='left')
>>> x.searchsorted([1, 3], side='right')
>>> 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'], side='right')
If the values are not monotonically sorted, wrong locations
may be returned:
>>> x = pd.Series([2, 1, 3])
0 # wrong result, correct would be 1