Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas - Tính indexer và tìm chỉ số gần nhất nếu không khớp chính xác

Để 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

  1. Import thư viện: import pandas as pd
  2. Tạo Index: index = pd.Index([10, 20, 30, 40, 50, 60, 70])
  3. 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)