Để kiểm tra element-wise (từng phần tử) xem một Interval có overlap với các giá trị trong IntervalArray hay không, chúng ta dùng phương thức overlaps().
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo IntervalArray
intervals = pd.arrays.IntervalArray.from_tuples([(10, 20), (15, 35)])
3. Kiểm tra overlap element-wise
Kiểm tra khoảng (12, 30] (mặc định closed='right') với từng khoảng trong IntervalArray:
print("\nInterval overlap với IntervalArray?\n", intervals.overlaps(pd.Interval(12, 30)))
Ví dụ hoàn chỉnh
import pandas as pd
intervals = pd.arrays.IntervalArray.from_tuples([(10, 20), (15, 35)])
print("IntervalArray:\n", intervals)
print("\nĐộ dài khoảng:\n", intervals.length)
# Kiểm tra overlap với (12, 30]
print("\nOverlap với (12, 30]):\n", intervals.overlaps(pd.Interval(12, 30)))
Kết quả đầu ra
IntervalArray:[(10, 20], (15, 35]] Length: 2, dtype: interval[int64, right] Độ dài khoảng: Int64Index([10, 20], dtype='int64') Interval overlap với IntervalArray: [True True]
Giải thích
Khoảng kiểm tra: (12, 30] (mặc định closed='right').
| Khoảng IntervalArray | Khoảng kiểm tra | Giao nhau | Overlap |
|---|---|---|---|
| (10, 20] | (12, 30] | (12, 20] | True |
| (15, 35] | (12, 30] | (15, 30] | True |
Cả hai đều có giao không rỗng → [True, True].
Lưu ý về closed parameter
# Mặc định closed='right'
pd.Interval(12, 30) # (12, 30]
pd.Interval(12, 30, closed='right') # (12, 30]
pd.Interval(12, 30, closed='left') # [12, 30)
pd.Interval(12, 30, closed='both') # [12, 30]
pd.Interval(12, 30, closed='neither')# (12, 30)
Kết quả overlaps() phụ thuộc vào closed của cả IntervalArray và khoảng kiểm tra.