Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas IntervalIndex – 열린 끝점만 공유하는 구간이 겹치는지 확인하는 방법

공통 끝점(엔드포인트)이 열려 있는(open) 상태로만 이어진 구간(Interval)들이 실제로 겹치는지 여부를 확인하려면 IntervalIndex.is_overlapping 속성을 사용하면 됩니다. Pandas에서 두 구간은 닫힌(closed) 끝점을 공유할 때 겹치는 것으로 간주되며, 열린 끝점만 공유하는 경우에는 겹치지 않는 것으로 판단됩니다.

1. 필수 라이브러리 가져오기

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

2. IntervalIndex 생성

closed 매개변수를 'left'로 설정하면 각 구간은 왼쪽 경계에서 닫히고 오른쪽 경계에서 열리는 형태([0, 1), [1, 2) 등)로 생성됩니다. 즉, 시작점은 포함하고 끝점은 제외하는 구간들이 만들어집니다.

interval = pd.interval_range(0, 8, closed='left')

3. 구간 출력 및 겹침 여부 확인

생성된 IntervalIndex를 출력하고, is_overlapping 속성으로 열린 끝점을 공유하는 구간들의 겹침 여부를 확인합니다.

print("IntervalIndex...\n", interval)
print("\nDoes the Intervals that have an open endpoint overlap?\n", interval.is_overlapping)

전체 예제 코드

import pandas as pd

# IntervalIndex 생성
# "closed" 매개변수가 "left"로 설정되어 있으므로 구간은 왼쪽 경계에서 닫힙니다.
interval = pd.interval_range(0, 8, closed='left')

# 구간 출력
print("IntervalIndex...\n", interval)

# 구간 길이 출력
print("\nIntervalIndex length...\n", interval.length)

# 열린 끝점만 공통으로 가지는 구간들이 겹치는지 확인
print("\nDoes the Intervals that have an open endpoint overlap?\n", interval.is_overlapping)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

IntervalIndex...
IntervalIndex([[0, 1), [1, 2), [2, 3), [3, 4), [4, 5), [5, 6), [6, 7), [7, 8)], dtype='interval[int64, left]')

IntervalIndex length...
Int64Index([1, 1, 1, 1, 1, 1, 1, 1], dtype='int64')

Does the Intervals that have an open endpoint overlap?
False

결과 해석

is_overlapping 속성이 False를 반환했습니다. 이는 [0, 1)과 [1, 2) 같은 인접한 구간들이 끝점 1을 공유하지만, 앞 구간에서는 해당 지점이 열려 있고(제외) 뒤 구간에서는 닫혀 있기(포함) 때문에 두 구간이 실질적으로 겹치지 않는다는 의미입니다. 만약 구간들이 닫힌 끝점을 서로 공유한다면 이 속성은 True를 반환하게 됩니다.