Để tính indexer (vị trí chỉ số) cho một mảng giá trị mục tiêu và tìm chỉ số gần nhất (nearest) nếu không có khớp chính xác, sử dụng phương thức index.get_indexer() với tham số method='nearest'.
Các bước thực hiện
- Import thư viện:
import pandas as pd - Tạo Index:
index = pd.Index([10, 20, 30, 40, 50, 60, 70]) - Gọi
index.get_indexer([30, 25, 58, 50, 69], method="nearest").
Ví dụ hoàn chỉnh
import pandas as pd
index = pd.Index([10, 20, 30, 40, 50, 60, 70])
print("Pandas Index...\n", index)
print("\nNumber of elements in the index...\n", index.size)
# Tính indexer với method='nearest'
print("\nGet the indexes...\n", index.get_indexer([30, 25, 58, 50, 69], method="nearest"))
Kết quả
Pandas Index...
Int64Index([10, 20, 30, 40, 50, 60, 70], dtype='int64')
Number of elements in the index...
7
Get the indexes...
[2 2 5 4 6]
Giải thích:
- 30 → chỉ số 2 (khớp chính xác)
- 25 → gần 20 (chỉ số 1) và 30 (chỉ số 2) như nhau, Pandas chọn chỉ số lớn hơn → 2
- 58 → gần 60 (chỉ số 5)
- 50 → chỉ số 4
- 69 → gần 70 (chỉ số 6)