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

Python Pandas - Kiểm tra Interval có giao nhau với IntervalArray không

Để kiểm tra từng phần tử (elementwise) xem một Interval có giao nhau (overlap) với các khoảng trong IntervalArray hay không, hãy sử dụng phương thức array.overlaps().

Các bước thực hiện

1. Import thư viện cần thiết

import pandas as pd

2. Tạo IntervalArray từ điểm chia

array = pd.arrays.IntervalArray.from_breaks([0, 1, 2, 3, 4, 5])

3. Hiển thị IntervalArray

print("IntervalArray của chúng ta...\n", array)

4. Kiểm tra giao nhau với Interval (2.5, 3.2)

print("\nInterval có giao nhau với IntervalArray không?", array.overlaps(pd.Interval(2.5, 3.2)))

Ví dụ hoàn chỉnh

import pandas as pd

# Hai khoảng giao nhau nếu chia sẻ điểm chung, kể cả đầu đóng
# Khoảng chỉ có đầu mở chung không tính giao nhau
# Tạo IntervalArray từ điểm chia
array = pd.arrays.IntervalArray.from_breaks([0, 1, 2, 3, 4, 5])

# Hiển thị IntervalArray
print("IntervalArray của chúng ta...\n", array)

# Kiểm tra giao nhau
print("\nInterval có giao nhau với IntervalArray không?", array.overlaps(pd.Interval(2.5, 3.2)))

Kết quả đầu ra

IntervalArray của chúng ta...

[(0, 1], (1, 2], (2, 3], (3, 4], (4, 5]]
Length: 5, dtype: interval[int64, right]

Interval có giao nhau với IntervalArray không?
[False False  True  True False]

Giải thích: Interval (2.5, 3.2) giao nhau với (2, 3] (vùng 2.5-3.0) và (3, 4] (vùng 3.0-3.2). Mặc định khoảng đóng phải nên 3.0 thuộc cả hai khoảng. Trả về mảng boolean độ dài bằng IntervalArray.