บทนำ
ใช้เมธอด overlaps() เพื่อตรวจสอบว่า IntervalArray แต่ละช่วงทับซ้อนกับช่วงที่กำหนดหรือไม่ โดยพิจารณาจากปลายทางเปิด/ปิด
ขั้นตอน
1. นำเข้าไลบรารีและสร้าง IntervalArray
import pandas as pd
intervals = pd.arrays.IntervalArray.from_tuples([(10, 20), (20, 35)])
ค่าเริ่มต้น: ปิดขวา (right-closed) → (10, 20], (20, 35]
2. ตรวจสอบการทับซ้อนกับช่วง (20, 25] ปิดขวา
print("\nDoes interval that that only have an open endpoint overlap or not...\n",
intervals.overlaps(pd.Interval(20, 25, closed='right')))
ตัวอย่างโค้ดเต็ม
import pandas as pd
intervals = pd.arrays.IntervalArray.from_tuples([(10, 20), (20, 35)])
print("IntervalArray...\n", intervals)
print("\nInterval length...\n", intervals.length)
print("\nDoes interval that that only have an open endpoint overlap or not...\n",
intervals.overlaps(pd.Interval(20, 25, closed='right')))
ผลลัพธ์
IntervalArray...
[(10, 20], (20, 35]]
Length: 2, dtype: interval[int64, right]
Interval length...
Int64Index([10, 15], dtype='int64')
Does interval that that only have an open endpoint overlap or not...
[False True]
คำอธิบาย
- ช่วงที่ 1:
(10, 20]ไม่รวม 20 (ปลายขวาปิด แต่ช่วงที่ตรวจสอบเริ่มที่ 20) - ช่วงที่ 2:
(20, 35]รวม 20 → ทับซ้อนกับ(20, 25]ที่ 20 - ผลลัพธ์:
[False, True]— ช่วงแรกไม่ทับซ้อน, ช่วงที่สองทับซ้อน - ปลายทางเปิด (open endpoint) ไม่ถือว่าทับซ้อนกัน