# xarray.CFTimeIndex.searchsorted

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

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('7a7f0729-1ad2-463d-bedf-a7dc902ea5bc','193f6f1d-2ebb-4e37-b1f9-e879d1eee75a','828dd846-3765-46a5-b6db-a579a46df16c','../lite/tree/../notebooks/index.html?path=9b08f87b_d570_458a_8365_cc9bd9081474.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)
np.int64(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")
np.int64(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="828dd846-3765-46a5-b6db-a579a46df16c" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('7a7f0729-1ad2-463d-bedf-a7dc902ea5bc','828dd846-3765-46a5-b6db-a579a46df16c')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('7a7f0729-1ad2-463d-bedf-a7dc902ea5bc','828dd846-3765-46a5-b6db-a579a46df16c')">Open In Tab</button></div><div id="193f6f1d-2ebb-4e37-b1f9-e879d1eee75a" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
