개요
분할 지점(breaks) 배열로부터 IntervalArray를 생성하려면 판다스에서 제공하는 pandas.arrays.IntervalArray.from_breaks() 메서드를 사용합니다. 이 메서드는 인접한 숫자들을 경계점으로 삼아 연속적인 구간(interval)들을 자동으로 만들어 주므로, 데이터 구간화(binning) 작업에 매우 유용합니다.
필요한 라이브러리 임포트
가장 먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
IntervalArray 생성하기
분할 지점들이 담긴 배열 형태의 데이터(array-like of splits)로부터 새로운 IntervalArray를 생성합니다.
array = pd.arrays.IntervalArray.from_breaks([0, 1, 2, 3, 4, 5])
위 코드는 [0, 1, 2, 3, 4, 5]라는 경계값을 기준으로 (0, 1], (1, 2], (2, 3], (3, 4], (4, 5] 총 5개의 반열린 구간을 만듭니다. 기본 설정에서 왼쪽 경계는 열려 있고(open), 오른쪽 경계는 닫혀 있는(closed) 형태임에 주목하세요.
생성된 구간 출력하기
생성된 구간들을 화면에 출력해 보겠습니다.
print("Our IntervalArray...\n",array)IntervalArray의 길이 확인하기
IntervalArray의 길이, 즉 각 구간의 폭을 구합니다.
print("\nOur IntervalArray length...\n",array.length)예제 전체 코드
지금까지 설명한 내용을 모두 포함한 전체 예제 코드는 다음과 같습니다.
import pandas as pd
# 분할 지점 배열로부터 새로운 IntervalArray를 생성합니다
array = pd.arrays.IntervalArray.from_breaks([0, 1, 2, 3, 4, 5])
# IntervalArray를 출력합니다
print("Our IntervalArray...\n",array)
# IntervalArray의 길이를 구합니다
# IntervalArray에 포함된 각 구간(Interval)의 길이를 나타내는 Index를 반환합니다
print("\nOur IntervalArray length...\n",array.length)
# IntervalArray에 포함된 각 구간의 중간값(midpoint)을 Index로 반환합니다
print("\nThe midpoint of each interval in the IntervalArray...\n",array.mid)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
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')
결과 해석
length 속성은 각 구간의 폭을 나타내며, 이 예제에서는 모든 구간의 길이가 1로 동일하게 계산되었습니다. mid 속성은 각 구간의 중간 지점 값을 반환하는데, (0, 1] 구간의 중간값은 0.5, (1, 2] 구간의 중간값은 1.5처럼 구간의 시작점과 끝점 사이의 절반 지점이 됩니다. 이처럼 from_breaks() 메서드를 활용하면 경계값 목록만으로 손쉽게 구간 배열을 만들고, 각 구간의 길이나 중간값 등 다양한 정보를 속성으로 조회할 수 있습니다.