Python의 Pandas 라이브러리에서 두 개의 Interval(구간) 객체가 서로 겹치는지 확인하려면 overlaps() 메서드를 사용하면 됩니다. 이 메서드는 두 구간이 공통된 지점을 가지고 있는지 여부에 따라 True 또는 False를 반환합니다.
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
구간이 겹치는 조건
두 구간은 닫힌(closed) 끝점을 포함한 공통 지점을 공유할 때 겹치는 것으로 간주됩니다. 반면, 열린(open) 끝점만 공유하는 경우에는 겹치지 않는다는 점에 유의해야 합니다.
Interval 객체 생성하기
예제를 위해 두 개의 Interval 객체를 생성해 보겠습니다.
interval1 = pd.Interval(10, 30) interval2 = pd.Interval(25, 35)
생성된 구간 객체를 출력하여 확인합니다.
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)두 구간의 겹침 여부 확인
overlaps() 메서드를 호출하여 두 Interval 객체가 겹치는지 검사합니다.
print("\n두 구간 객체가 겹치나요?\n", interval1.overlaps(interval2))전체 예제 코드
아래는 위 과정을 모두 포함한 전체 코드입니다.
import pandas as pd
# 두 구간은 닫힌 끝점을 포함한 공통 지점을 공유할 때 겹칩니다.
# 열린 끝점만 공유하는 경우에는 겹치지 않습니다.
# 두 개의 Interval 객체 생성
interval1 = pd.Interval(10, 30)
interval2 = pd.Interval(25, 35)
# 구간 출력
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)
# Interval1과 Interval2 객체의 길이 출력
print("\nInterval1 객체의 길이 = ", interval1.length)
print("\nInterval2 객체의 길이 = ", interval2.length)
# 두 구간 객체가 겹치는지 확인
print("\n두 구간 객체가 겹치나요?\n", interval1.overlaps(interval2))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Interval1... (10, 30] Interval2... (25, 35] Interval1 객체의 길이 = 20 Interval2 객체의 길이 = 10 두 구간 객체가 겹치나요? True
결과 해석
interval1은 (10, 30] 범위, interval2는 (25, 35] 범위를 나타냅니다. 두 구간은 25보다 크고 30 이하인 구간 (25, 30]을 공유하므로, overlaps() 메서드는 True를 반환합니다. 만약 두 구간이 겹치지 않았다면 False가 출력되었을 것입니다.