Index.get_loc(key, method=None, tolerance=None)[source]

Get integer location, slice or boolean mask for requested label.

key : label
method : {None, ‘pad’/’ffill’, ‘backfill’/’bfill’, ‘nearest’}, optional
  • default: exact matches only.
  • pad / ffill: find the PREVIOUS index value if no exact match.
  • backfill / bfill: use NEXT index value if no exact match
  • nearest: use the NEAREST index value if no exact match. Tied distances are broken by preferring the larger index value.
tolerance : optional

Maximum distance from index value for inexact matches. The value of the index at the matching location most satisfy the equation abs(index[loc] - key) <= tolerance.

Tolerance may be a scalar value, which applies the same tolerance to all values, or list-like, which applies variable tolerance per element. List-like includes list, tuple, array, Series, and must be the same size as the index and its dtype must exactly match the index’s type.

New in version 0.21.0: (list-like tolerance)

loc : int if unique index, slice if monotonic index, else mask


>>> unique_index = pd.Index(list('abc'))
>>> unique_index.get_loc('b')
>>> monotonic_index = pd.Index(list('abbc'))
>>> monotonic_index.get_loc('b')
slice(1, 3, None)
>>> non_monotonic_index = pd.Index(list('abcb'))
>>> non_monotonic_index.get_loc('b')
array([False,  True, False,  True], dtype=bool)
Scroll To Top