pandas.Series.searchsorted
-
Series.searchsorted(value, side='left', sorter=None)
[source] -
Find indices where elements should be inserted to maintain order.
Find the indices into a sorted Series
self
such that, if the corresponding elements invalue
were inserted before the indices, the order ofself
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 ofnp.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
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])
-
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.24.2/reference/api/pandas.Series.searchsorted.html