Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – 분할 배열로 IntervalArray 구성하고 각 구간의 오른쪽 끝점 확인하기

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로 반환하는 것을 확인할 수 있습니다.