Pandas에서 set_closed() 메서드를 사용하면 현재 IntervalArray와 동일하지만 지정한 방향으로 닫힌 새로운 IntervalArray를 반환할 수 있습니다. 이번 글에서는 매개변수를 'both'로 설정하여 왼쪽과 오른쪽 경계가 모두 포함되는(닫힌) 구간 배열로 변환하는 방법을 살펴보겠습니다.
기본 사용법
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
from_breaks() 메서드를 사용해 IntervalArray를 생성합니다.
index = pd.arrays.IntervalArray.from_breaks(range(6))
생성된 구간 배열을 화면에 출력합니다.
print("IntervalIndex...\n", index)set_closed() 메서드에 'both'를 전달하면 양쪽이 닫힌 구간 배열을 얻을 수 있습니다.
print("\nResult...", index.set_closed('both'))전체 예제 코드
다음은 위 과정을 하나로 정리한 전체 코드입니다.
import pandas as pd
# IntervalArray 생성
index = pd.arrays.IntervalArray.from_breaks(range(6))
# 구간 배열 출력
print("IntervalIndex...\n", index)
# 각 구간의 길이 출력
print("\nIntervalIndex length...\n", index.length)
# 왼쪽 경계값 출력
print("\nThe left bound for the IntervalIndex...\n", index.left)
# 오른쪽 경계값 출력
print("\nThe right bound for the IntervalIndex...\n", index.right)
# 현재 배열과 동일하지만 양쪽(both)이 닫힌
# 새로운 IntervalArray 반환
print("\nResult...", index.set_closed('both'))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
IntervalIndex... <IntervalArray> [(0, 1], (1, 2], (2, 3], (3, 4], (4, 5]] Length: 5, dtype: interval[int64, right] IntervalIndex length... Int64Index([1, 1, 1, 1, 1], dtype='int64') The left bound for the IntervalIndex... Int64Index([0, 1, 2, 3, 4], dtype='int64') The right bound for the IntervalIndex... Int64Index([1, 2, 3, 4, 5], dtype='int64') Result... <IntervalArray> [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]] Length: 5, dtype: interval[int64, both]
결과 해석
원본 IntervalArray는 (0, 1], (1, 2]처럼 오른쪽만 닫힌(right) 구간으로 구성되어 있습니다. set_closed('both')를 적용한 결과 배열은 [0, 1], [1, 2]처럼 대괄호로 표시되는 것을 확인할 수 있으며, dtype도 interval[int64, both]로 변경되었습니다. 즉, 각 구간의 시작값과 끝값이 모두 해당 구간에 포함됩니다.
참고로 set_closed() 메서드에는 'left', 'right', 'both', 'neither' 네 가지 값을 지정할 수 있으며, 원본 배열은 변경되지 않고 새로운 배열이 반환된다는 점을 기억해 두면 유용합니다.