# xarray.CFTimeIndex.asof_locs

#### CFTimeIndex.asof_locs(where, mask)[[source]](https://github.com/pydata/xarray/blob/main/xarray/../.pixi/envs/doc/lib/python3.14/site-packages/pandas/core/indexes/base.py#L5805-L5870)

Return the locations (indices) of labels in the index.

As in the [`pandas.Index.asof()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.asof.html#pandas.Index.asof), if the label (a particular entry in
`where`) is not in the index, the latest index label up to the
passed label is chosen and its index returned.

If all of the labels in the index are later than a label in `where`,
-1 is returned.

`mask` is used to ignore `NA` values in the index during calculation.

* **Parameters:**
  * **where** ([`Index`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.html#pandas.Index)) – An Index consisting of an array of timestamps.
  * **mask** (`np.ndarray[bool]`) – Array of booleans denoting where values in the original
    data are not `NA`.
* **Returns:**
  `np.ndarray[np.intp]` – An array of locations (indices) of the labels from the index
  which correspond to the return values of [`pandas.Index.asof()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.asof.html#pandas.Index.asof)
  for every element in `where`.

#### SEE ALSO
`Index.asof`
: Return the label from the index, or, if not present, the previous one.

### Examples

<div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesShowIframe('a8f1a1d9-7b81-4759-8cb6-634dfb6a592a','a345413c-2b99-4cb7-9f52-75d20c173390','231df272-cf85-4f16-898b-d5c100909b41','../lite/tree/../notebooks/index.html?path=f5b56948_7897_4052_a387_2eced1bfd92f.ipynb','None')">Try it in your browser!</button></div>
```pycon
>>> idx = pd.date_range("2023-06-01", periods=3, freq="D")
>>> where = pd.DatetimeIndex(
...     ["2023-05-30 00:12:00", "2023-06-01 00:00:00", "2023-06-02 23:59:59"]
... )
>>> mask = np.ones(3, dtype=bool)
>>> idx.asof_locs(where, mask)
array([-1,  0,  1])
```

We can use `mask` to ignore certain values in the index during calculation.

```pycon
>>> mask[1] = False
>>> idx.asof_locs(where, mask)
array([-1,  0,  0])
```

<div id="231df272-cf85-4f16-898b-d5c100909b41" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('a8f1a1d9-7b81-4759-8cb6-634dfb6a592a','231df272-cf85-4f16-898b-d5c100909b41')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('a8f1a1d9-7b81-4759-8cb6-634dfb6a592a','231df272-cf85-4f16-898b-d5c100909b41')">Open In Tab</button></div><div id="a345413c-2b99-4cb7-9f52-75d20c173390" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
