# xarray.CFTimeIndex.asof_locs

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

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('be0e8b1e-041d-43fc-95f4-6bc6b5aabfd0','45e23abb-23b2-40aa-93c5-409e93a0fadf','0c6ee04b-e936-4637-8c69-ef1728963123','../lite/tree/../notebooks/index.html?path=12666633_2091_492c_a647_56c8aec2dfa8.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="0c6ee04b-e936-4637-8c69-ef1728963123" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('be0e8b1e-041d-43fc-95f4-6bc6b5aabfd0','0c6ee04b-e936-4637-8c69-ef1728963123')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('be0e8b1e-041d-43fc-95f4-6bc6b5aabfd0','0c6ee04b-e936-4637-8c69-ef1728963123')">Open In Tab</button></div><div id="45e23abb-23b2-40aa-93c5-409e93a0fadf" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
