code: def searchsorted(self, value, side="left", sorter=None):
          
          # Note: the base tests provided by pandas only test the basics.
          # We do not test
          # 1. Values outside the range of the `data_for_sorting` fixture
          # 2. Values between the values in the `data_for_sorting` fixture
          # 3. Missing values.
          arr = self.astype(object)
          return arr.searchsorted(value, side=side, sorter=sorter)
docs: Find indices where elements should be inserted to maintain order.
  
          .. versionadded:: 0.24.0
  
          Find the indices into a sorted array `self` (a) such that, if the
          corresponding elements in `value` were inserted before the indices,
          the order of `self` would be preserved.
  
          Assuming that `self` is sorted:
  
          ======  ================================
          `side`  returned index `i` satisfies
          ======  ================================
          left    ``self[i-1] < value <= self[i]``
          right   ``self[i-1] <= value < self[i]``
          ======  ================================
  
          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 array a into ascending
              order. They are typically the result of argsort.
  
          Returns
          -------
          array of ints
              Array of insertion points with the same shape as `value`.
  
          See Also
          --------
          numpy.searchsorted : Similar method from NumPy.