# xarray.CFTimeIndex.searchsorted

#### CFTimeIndex.searchsorted(value, side='left', sorter=None)[[source]](https://github.com/pydata/xarray/blob/main/xarray/../.pixi/envs/doc/lib/python3.15/site-packages/pandas/core/base.py#L1566-L1687)

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.

#### NOTE
The Index *must* be monotonically sorted, otherwise
wrong locations will likely be returned. Pandas does *not*
check this for you.

* **Parameters:**
  * **value** ([array-like](https://numpy.org/doc/stable/glossary.html#term-array_like) or [scalar](../user-guide/terminology.html.md#term-scalar)) – 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`](https://docs.python.org/3/builtins/functions.html#int) or [array](https://numpy.org/doc/stable/glossary.html#term-array) of [`int`](https://docs.python.org/3/builtins/functions.html#int) – A scalar or array of insertion points with the
  same shape as value.

#### SEE ALSO
[`sort_values`](xarray.CFTimeIndex.sort_values.html.md#xarray.CFTimeIndex.sort_values)
: Sort by the values along either axis.

[`numpy.searchsorted`](https://numpy.org/doc/stable/reference/generated/numpy.searchsorted.html#numpy.searchsorted)
: Similar method from NumPy.

### Notes

Binary search is used to find the required insertion points.

### Examples

<div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesShowIframe('5bf5cc0d-eb85-42b5-9405-befc341abfbd','adf2eec1-21a3-4ed0-82a2-5eb07d29860c','e7020d4e-fe96-4d7b-95e1-6a0578875ae2','../lite/tree/../notebooks/index.html?path=6ee02ad7_61ce_413a_960d_643f02aaf122.ipynb','None')">Try it in your browser!</button></div>
```pycon
>>> ser = pd.Series([1, 2, 3])
>>> ser
0    1
1    2
2    3
dtype: int64
```

```pycon
>>> ser.searchsorted(4)
3
```

```pycon
>>> ser.searchsorted([0, 4])
array([0, 3])
```

```pycon
>>> ser.searchsorted([1, 3], side="left")
array([0, 2])
```

```pycon
>>> ser.searchsorted([1, 3], side="right")
array([1, 3])
```

```pycon
>>> ser = pd.Series(pd.to_datetime(["3/11/2000", "3/12/2000", "3/13/2000"]))
>>> ser
0   2000-03-11
1   2000-03-12
2   2000-03-13
dtype: datetime64[us]
```

```pycon
>>> ser.searchsorted("3/14/2000")
3
```

```pycon
>>> ser = pd.Categorical(
...     ["apple", "bread", "bread", "cheese", "milk"], ordered=True
... )
>>> ser
['apple', 'bread', 'bread', 'cheese', 'milk']
Categories (4, str): ['apple' < 'bread' < 'cheese' < 'milk']
```

```pycon
>>> ser.searchsorted("bread")
np.int64(1)
```

```pycon
>>> ser.searchsorted(["bread"], side="right")
array([3])
```

If the values are not monotonically sorted, wrong locations
may be returned:

```pycon
>>> ser = pd.Series([2, 1, 3])
>>> ser
0    2
1    1
2    3
dtype: int64
```

```pycon
>>> ser.searchsorted(1)
0  # wrong result, correct would be 1
```

<div id="e7020d4e-fe96-4d7b-95e1-6a0578875ae2" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('5bf5cc0d-eb85-42b5-9405-befc341abfbd','e7020d4e-fe96-4d7b-95e1-6a0578875ae2')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('5bf5cc0d-eb85-42b5-9405-befc341abfbd','e7020d4e-fe96-4d7b-95e1-6a0578875ae2')">Open In Tab</button></div><div id="adf2eec1-21a3-4ed0-82a2-5eb07d29860c" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
