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

Python Pandas - Tính indexer và tìm chỉ số trước đó (previous) nếu không khớp chính xác

Để tính indexer và tìm chỉ số trước đó (forward fill / ffill) nếu không khớp chính xác, sử dụng phương thức index.get_indexer() với tham số method='ffill'.

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, 20, 75, 80, 50, 59], method="ffill").

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='ffill' (tìm giá trị trước đó nhỏ hơn hoặc bằng)
print("\nGet the indexes...\n", index.get_indexer([30, 20, 75, 80, 50, 59], method="ffill"))

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 1 6 6 4 4]

Giải thích:

  • 30 → chỉ số 2 (khớp chính xác)
  • 20 → chỉ số 1 (khớp chính xác)
  • 75, 80 → lớn hơn tất cả giá trị trong index → lấy giá trị cuối cùng (70) tại chỉ số 6
  • 50 → chỉ số 4
  • 59 → giá trị trước đó ≤ 59 là 50 → chỉ số 4