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

Python Pandas IntervalIndex – 닫힌 끝점을 공유하는 구간이 겹치는지 확인하는 방법

Pandas에서 IntervalIndex에 포함된 구간들이 서로 겹치는지 확인하려면 is_overlapping 속성을 사용하면 됩니다. 특히 닫힌(closed) 끝점을 공유하는 구간 사이에 중복이 존재하는지 손쉽게 판별할 수 있습니다.

먼저 필요한 라이브러리를 가져옵니다.

import pandas as pd

IntervalIndex 생성하기

interval_range() 함수를 사용하여 IntervalIndex를 생성합니다. 이때 closed 매개변수를 'both'로 설정하면 각 구간의 시작점과 끝점이 모두 포함되는(닫힌) 구간이 만들어집니다.

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

생성된 IntervalIndex를 출력해 내용을 확인해 보겠습니다.

print("IntervalIndex...\n",interval)

구간 겹침 여부 확인하기

is_overlapping 속성을 사용하면 닫힌 끝점을 공유하는 구간들 사이에 겹침이 발생하는지 불리언(True/False) 값으로 확인할 수 있습니다.

print("\nDoes the Intervals that share closed endpoints overlap?\n",interval.is_overlapping)

전체 예제 코드

아래는 위 과정을 모두 포함한 전체 코드입니다.

import pandas as pd

# IntervalIndex 생성
# "closed" 매개변수를 "both"로 설정하여 양쪽 끝이 모두 닫힌 구간 생성
interval = pd.interval_range(0, 8, closed='both')

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

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

# 닫힌 끝점을 공유하는 구간이 겹치는지 확인
print("\nDoes the Intervals that share closed endpoints 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, both]')

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

Does the Intervals that share closed endpoints overlap?
True

결과 해석

생성된 IntervalIndex는 [0, 1], [1, 2], [2, 3]처럼 이전 구간의 끝점과 다음 구간의 시작점이 동일한 값을 공유합니다. closed='both'로 설정되어 있어 이 경계 지점이 양쪽 구간 모두에 포함되므로, is_overlapping 속성은 True를 반환하게 됩니다. 만약 구간이 서로 분리되어 있거나 경계가 열려 있다면 결과는 달라질 수 있습니다.