Python Pandas - Get integer location for requested label and find the nearest index value if no exact match

The get_loc() method in Pandas returns the integer location of a label in an index. When an exact match isn't found, you can use the method="nearest" parameter to find the closest index value.

Syntax

index.get_loc(key, method=None, tolerance=None)

Parameters

  • key ? The label to find
  • method ? Method to use for inexact matches ('nearest', 'pad', 'backfill')
  • tolerance ? Maximum distance for inexact matches

Creating a Pandas Index

First, let's create a Pandas index with some values ?

import pandas as pd

# Creating Pandas index
index = pd.Index([10, 20, 30, 40, 50, 60, 70])
print("Pandas Index...")
print(index)
Pandas Index...
Index([10, 20, 30, 40, 50, 60, 70], dtype='int64')

Getting Exact Location

When the label exists in the index, get_loc() returns its position ?

import pandas as pd

index = pd.Index([10, 20, 30, 40, 50, 60, 70])

# Get exact locations
print("Location of 20:", index.get_loc(20))
print("Location of 50:", index.get_loc(50))
Location of 20: 1
Location of 50: 4

Finding Nearest Index Value

When no exact match exists, use method="nearest" to find the closest value ?

import pandas as pd

index = pd.Index([10, 20, 30, 40, 50, 60, 70])

# Find nearest location for non-existing values
print("Nearest location for 58:", index.get_loc(58, method="nearest"))
print("Nearest location for 25:", index.get_loc(25, method="nearest"))
print("Nearest location for 15:", index.get_loc(15, method="nearest"))
Nearest location for 58: 5
Nearest location for 25: 2
Nearest location for 15: 1

Complete Example

Here's a comprehensive example showing both exact and nearest matches ?

import pandas as pd

# Creating Pandas index
index = pd.Index([10, 20, 30, 40, 50, 60, 70])

print("Pandas Index...")
print(index)
print("\nNumber of elements:", index.size)

# Exact matches
print("\nExact locations:")
print("Location of 20:", index.get_loc(20))
print("Location of 50:", index.get_loc(50))

# Nearest matches for non-existing values
print("\nNearest locations:")
print("Nearest to 58:", index.get_loc(58, method="nearest"))
print("Nearest to 25:", index.get_loc(25, method="nearest"))
Pandas Index...
Index([10, 20, 30, 40, 50, 60, 70], dtype='int64')

Number of elements: 7

Exact locations:
Location of 20: 1
Location of 50: 4

Nearest locations:
Nearest to 58: 5
Nearest to 25: 2

Conclusion

Use get_loc() with method="nearest" to find the closest index position when exact matches don't exist. This is useful for finding approximate locations in sorted data or time series.

Updated on: 2026-03-26T16:33:35+05:30

280 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements