IntervalArray에 포함된 각 구간(Interval)의 중간값(midpoint)을 인덱스 형태로 반환하려면 array.mid 속성을 사용하면 됩니다. 이 속성은 배열 내 모든 구간의 중간 지점을 계산하여 새로운 인덱스 객체로 돌려주므로, 구간 데이터를 다룰 때 매우 유용합니다.
필요한 라이브러리 불러오기
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
구간(Interval) 객체 생성
이제 두 개의 Interval 객체를 생성합니다. 이때 closed 매개변수를 'both'로 설정하면 양쪽 끝점을 모두 포함하는 닫힌 구간(closed interval)이 만들어집니다.
interval1 = pd.Interval(50, 75, closed='both') interval2 = pd.Interval(65, 90, closed='both')
생성된 구간을 화면에 출력해 확인해 보겠습니다.
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)
IntervalArray 생성하기
앞서 만든 두 개의 Interval 객체를 사용하여 새로운 IntervalArray를 구성합니다.
array = pd.arrays.IntervalArray([interval1, interval2])
마지막으로 array.mid 속성을 호출하면, IntervalArray 내 각 구간의 중간값이 인덱스 형태로 반환됩니다.
print("\nThe midpoint of each interval in the IntervalArray...\n", array.mid)
전체 예제 코드
지금까지 설명한 내용을 하나로 정리한 전체 코드는 다음과 같습니다.
import pandas as pd
# 두 개의 Interval 객체 생성
# closed 매개변수를 'both'로 설정하여 닫힌 구간으로 지정
interval1 = pd.Interval(50, 75, closed='both')
interval2 = pd.Interval(65, 90, closed='both')
# 구간 출력
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)
# Interval 객체들로부터 새로운 IntervalArray 생성
array = pd.arrays.IntervalArray([interval1, interval2])
# IntervalArray 출력
print("\nOur IntervalArray...\n", array)
# IntervalArray의 길이 확인
# 배열 내 각 구간의 길이를 나타내는 인덱스를 반환합니다.
print("\nOur IntervalArray length...\n", array.length)
# IntervalArray 내 각 구간의 중간값을 인덱스로 반환
print("\nThe midpoint of each interval in the IntervalArray...\n", array.mid)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Interval1... [50, 75] Interval2... [65, 90] Our IntervalArray... <IntervalArray> [[50, 75], [65, 90]] Length: 2, dtype: interval[int64, both] Our IntervalArray length... Int64Index([25, 25], dtype='int64') The midpoint of each interval in the IntervalArray... Float64Index([62.5, 77.5], dtype='float64')
정리
실행 결과에서 볼 수 있듯이, 첫 번째 구간 [50, 75]의 중간값은 (50 + 75) / 2 = 62.5이고, 두 번째 구간 [65, 90]의 중간값은 (65 + 90) / 2 = 77.5입니다. array.mid 속성은 이 값들을 Float64Index([62.5, 77.5]) 형태의 인덱스로 깔끔하게 반환해 줍니다. 또한 참고로 array.length 속성을 사용하면 각 구간의 길이도 동일한 방식으로 확인할 수 있습니다.