Pandas에서 분할 지점(breaks) 배열을 기반으로 IntervalArray를 생성하려면 pandas.arrays.IntervalArray.from_breaks() 메서드를 사용합니다. 그리고 각 구간(interval)의 오른쪽 끝점을 확인하려면 array.right 속성을 활용하면 됩니다.
핵심 개념 정리
- from_breaks(): 경계값 목록을 받아 인접한 두 값 사이를 하나의 구간으로 만들어 IntervalArray를 구성합니다.
- array.right: IntervalArray에 포함된 각 구간의 오른쪽(상위) 끝점들을 Index 형태로 반환합니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
분할 지점 배열로부터 새로운 IntervalArray를 생성합니다.
array = pd.arrays.IntervalArray.from_breaks([0, 1, 2, 3, 4, 5])
생성된 구간들을 출력해 확인합니다.
print("Our IntervalArray...\n", array)각 구간의 오른쪽 끝점을 가져옵니다.
print("\nThe right endpoints of each Interval in the IntervalArray as an Index...\n", array.right)전체 예제 코드
아래는 위 과정을 모두 포함한 완전한 코드입니다. 참고로 구간 길이(length)와 중간점(mid)도 함께 확인할 수 있습니다.
import pandas as pd
# 분할 지점 배열로부터 새로운 IntervalArray 생성
array = pd.arrays.IntervalArray.from_breaks([0, 1, 2, 3, 4, 5])
# IntervalArray 출력
print("Our IntervalArray...\n", array)
# IntervalArray의 길이 확인
# 각 구간의 길이를 담은 Index를 반환합니다.
print("\nOur IntervalArray length...\n", array.length)
# 각 구간의 중간점(midpoint)을 Index로 반환
print("\nThe midpoint of each interval in the IntervalArray...\n", array.mid)
# 각 구간의 오른쪽 끝점 확인
print("\nThe right endpoints of each Interval in the IntervalArray as an Index...\n", array.right)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Our IntervalArray... <IntervalArray> [(0, 1], (1, 2], (2, 3], (3, 4], (4, 5]] Length: 5, dtype: interval[int64, right] Our IntervalArray length... Int64Index([1, 1, 1, 1, 1], dtype='int64') The midpoint of each interval in the IntervalArray... Float64Index([0.5, 1.5, 2.5, 3.5, 4.5], dtype='float64') The right endpoints of each Interval in the IntervalArray as an Index... Int64Index([1, 2, 3, 4, 5], dtype='int64')
결과 해석
[0, 1, 2, 3, 4, 5]라는 경계값으로 생성된 IntervalArray는 (0, 1], (1, 2], (2, 3], (3, 4], (4, 5] 총 5개의 반개구간(right-closed)으로 구성됩니다. 이때 array.right는 각 구간의 오른쪽 끝점인 [1, 2, 3, 4, 5]를 Int64Index로 반환하며, array.length는 모든 구간의 길이가 1임을, array.mid는 각 구간의 중간점인 [0.5, 1.5, 2.5, 3.5, 4.5]를 Float64Index로 반환하는 것을 확인할 수 있습니다.