Phương thức overlaps() trong Pandas kiểm tra xem hai đối tượng Interval có chồng lấp (overlap) nhau hay không. Hai interval chồng lấp nếu chúng chia sẻ một điểm chung, bao gồm cả endpoint đóng (closed endpoints).
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo hai Interval object đóng cả hai đầu
Sử dụng tham số closed='both' để interval bao gồm cả endpoint trái và phải:
interval1 = pd.Interval(10, 30, closed='both')
interval2 = pd.Interval(30, 50, closed='both')
3. Hiển thị các interval
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)
4. Kiểm tra chồng lấp
print("\nCả hai interval có chồng lấp?\n", interval1.overlaps(interval2))
Ví dụ hoàn chỉnh
import pandas as pd
# Tạo hai interval đóng cả hai đầu
interval1 = pd.Interval(10, 30, closed='both')
interval2 = pd.Interval(30, 50, closed='both')
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)
print("\nĐộ dài Interval1 = ", interval1.length)
print("\nĐộ dài Interval2 = ", interval2.length)
print("\nCả hai interval có chồng lấp?\n", interval1.overlaps(interval2))
Kết quả đầu ra
Interval1...
[10, 30]
Interval2...
[30, 50]
Độ dài Interval1 = 20
Độ dài Interval2 = 20
Cả hai interval có chồng lấp?
True
Giải thích:
[10, 30]và[30, 50]đều đóng (closed='both')- Chúng chia sẻ điểm 30 → chồng lấp = True
- Nếu một trong hai là open tại 30, kết quả sẽ là False
Quy tắc chồng lấp (Overlap Rules)
| Interval 1 | Interval 2 | Chồng lấp? |
|---|---|---|
| [10, 30] | [30, 50] | True (chung điểm 30) |
| [10, 30) | [30, 50] | False (10-30 không bao gồm 30) |
| (10, 30] | (30, 50] | False (không chung điểm nào) |
| [10, 30] | [25, 40] | True (chung đoạn 25-30) |