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

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

การตรวจสอบการซ้อนทับของ Interval ที่มีปลายทางเปิด

ใช้เมธอด overlaps() ตรวจสอบว่า Interval สองชุดซ้อนทับกันหรือไม่ (รวมปลายทางที่ปิด แต่ไม่รวมปลายทางที่เปิด)

ขั้นตอน

  1. นำเข้า pandas
  2. สร้าง Interval1: closed='both' (ปิดทั้งสองข้าง)
  3. สร้าง Interval2: closed='neither' (เปิดทั้งสองข้าง)
  4. ใช้ interval1.overlaps(interval2)

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

import pandas as pd

# Interval1: [10, 30] ปิดทั้งสองข้าง
# Interval2: (30, 50) เปิดทั้งสองข้าง
interval1 = pd.Interval(10, 30, closed='both')
interval2 = pd.Interval(30, 50, closed='neither')

# แสดง intervals
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)

# แสดงความยาว
print("\nInterval1 object length = ", interval1.length)
print("\nInterval2 object length = ", interval2.length)

# ตรวจสอบการซ้อนทับ
print("\nDo both the interval objects overlap?\n", interval1.overlaps(interval2))

ผลลัพธ์

Interval1... [10, 30]
Interval2... (30, 50)
Interval1 object length = 20
Interval2 object length = 20
Do both the interval objects overlap? False

คำอธิบาย

Interval1 จบที่ 30 (รวม 30) Interval2 เริ่มที่ 30 (ไม่รวม 30) จึงไม่มีจุดร่วมกัน → ไม่ซ้อนทับ

หาก Interval2 เป็น closed='left' หรือ 'both' จะซ้อนทับที่จุด 30