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

การใช้ get_loc() หาตำแหน่งของทุกช่วงที่มีค่าซ้ำกันใน IntervalIndex

เมื่อมี IntervalIndex ที่ช่วงทับซ้อนกัน (overlapping) ค่าเดียวอาจอยู่ในหลายช่วงพร้อมกัน เมธอด get_loc() จะคืนค่ามาสก์บูลีน (boolean mask) แสดงว่าค่านั้นอยู่ในช่วงไหนบ้าง

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

import pandas as pd

# สร้างช่วงที่ทับซ้อนกัน (ปิดทั้งสองข้าง)
interval1 = pd.Interval(50, 75, closed='both')
interval2 = pd.Interval(75, 90, closed='both')
interval3 = pd.Interval(50, 90, closed='both')

index = pd.IntervalIndex([interval1, interval2, interval3])

print("Interval1:", interval1)
print("Interval2:", interval2)
print("Interval3:", interval3)

# หาตำแหน่งช่วงที่มีค่า 65
locations = index.get_loc(65)
print("\nตำแหน่งช่วงที่มีค่า 65:\n", locations)

ผลลัพธ์

Interval1: [50, 75]
Interval2: [75, 90]
Interval3: [50, 90]

ตำแหน่งช่วงที่มีค่า 65:
[ True False True]

ค่า 65 อยู่ใน Interval1 และ Interval3 (True, False, True) เนื่องจากช่วงทั้งสองครอบคลุม 65 ขณะที่ Interval2 เริ่มที่ 75 จึงไม่รวม 65