Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas - Kiểm tra elementwise Interval overlap với IntervalArray

Để kiểm tra element-wise (từng phần tử) xem một Interval có overlap với các giá trị trong IntervalArray hay không, chúng ta dùng phương thức overlaps().

Các bước thực hiện

1. Import thư viện

import pandas as pd

2. Tạo IntervalArray

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

3. Kiểm tra overlap element-wise

Kiểm tra khoảng (12, 30] (mặc định closed='right') với từng khoảng trong IntervalArray:

print("\nInterval overlap với IntervalArray?\n", intervals.overlaps(pd.Interval(12, 30)))

Ví dụ hoàn chỉnh

import pandas as pd

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

print("IntervalArray:\n", intervals)
print("\nĐộ dài khoảng:\n", intervals.length)

# Kiểm tra overlap với (12, 30]
print("\nOverlap với (12, 30]):\n", intervals.overlaps(pd.Interval(12, 30)))

Kết quả đầu ra

IntervalArray:

[(10, 20], (15, 35]]
Length: 2, dtype: interval[int64, right]
Độ dài khoảng:
Int64Index([10, 20], dtype='int64')
Interval overlap với IntervalArray:
[True True]

Giải thích

Khoảng kiểm tra: (12, 30] (mặc định closed='right').

Khoảng IntervalArrayKhoảng kiểm traGiao nhauOverlap
(10, 20](12, 30](12, 20]True
(15, 35](12, 30](15, 30]True

Cả hai đều có giao không rỗng → [True, True].

Lưu ý về closed parameter

# Mặc định closed='right'
pd.Interval(12, 30)           # (12, 30]
pd.Interval(12, 30, closed='right')  # (12, 30]
pd.Interval(12, 30, closed='left')   # [12, 30)
pd.Interval(12, 30, closed='both')   # [12, 30]
pd.Interval(12, 30, closed='neither')# (12, 30)

Kết quả overlaps() phụ thuộc vào closed của cả IntervalArray và khoảng kiểm tra.