# pandas.Series.searchsorted

`Series.``searchsorted`(*args, **kwargs)

  Find indices where elements should be inserted to maintain order.

  Find the indices into a sorted Series 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:

  indices : array of ints

  > Array of insertion points with the same shape as value.

  See also

  `numpy.searchsorted`

  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)
      array([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' ])
      [apple, bread, bread, cheese, milk]
      Categories (4, object): [apple < bread < cheese < milk]

      >>> x.searchsorted('bread')
      array([1])     # Note: an array, not a scalar

      >>> x.searchsorted(['bread'])
      array([1])

      >>> x.searchsorted(['bread', 'eggs'])
      array([1, 4])

      >>> x.searchsorted(['bread', 'eggs'], side='right')
      array([3, 4])    # eggs before milk

Scroll To Top