Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Pandas IntervalArray - ตรวจสอบช่วงที่มีปลายทางปิดร่วมกันว่าทับซ้อนหรือไม่

บทนำ

ใช้ IntervalArray.overlaps() ตรวจสอบการทับซ้อนเมื่อช่วงมีปลายทางปิด (closed endpoint) ร่วมกัน

ขั้นตอน

1. นำเข้าไลบรารีและสร้าง IntervalArray

import pandas as pd
intervals = pd.arrays.IntervalArray.from_tuples([(10, 20), (15, 35)])

ค่าเริ่มต้น: ปิดขวา → (10, 20], (15, 35]

2. ตรวจสอบกับช่วง (15, 28] ปิดซ้าย

print("\nDoes interval that share closed endpoints overlap or not...\n",
      intervals.overlaps(pd.Interval(15, 28, closed='left')))

ตัวอย่างโค้ดเต็ม

import pandas as pd

intervals = pd.arrays.IntervalArray.from_tuples([(10, 20), (15, 35)])

print("IntervalArray...\n", intervals)
print("\nInterval length...\n", intervals.length)
print("\nDoes interval that share closed endpoints overlap or not...\n",
      intervals.overlaps(pd.Interval(15, 28, closed='left')))

ผลลัพธ์

IntervalArray...

[(10, 20], (15, 35]]
Length: 2, dtype: interval[int64, right]

Interval length...
Int64Index([10, 20], dtype='int64')

Does interval that share closed endpoints overlap or not...
[True True]

คำอธิบาย

  • ช่วงที่ 1: (10, 20] รวม 15-20
  • ช่วงที่ 2: (15, 35] รวม 15-35
  • ช่วงตรวจสอบ: [15, 28) ปิดซ้าย รวม 15
  • ทั้งสองช่วงทับซ้อนที่ 15 (ปลายทางปิดร่วมกัน) → [True, True]
  • ปลายทางปิด (closed endpoint) ถือว่าทับซ้อนกัน