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

Python Pandas – 튜플 배열로 IntervalArray를 생성하고 각 구간(Interval)의 오른쪽 끝점 반환하기

튜플로 이루어진 배열 형태의 데이터에서 IntervalArray를 생성하려면 pandas.arrays.IntervalArray.from_tuples() 메서드를 사용합니다. 그리고 생성된 IntervalArray에 포함된 각 구간(Interval)의 오른쪽 끝점을 확인하려면 array.right 속성을 활용하면 됩니다.

필수 라이브러리 임포트

먼저 pandas 라이브러리를 불러옵니다.

import pandas as pd

IntervalArray 생성하기

튜플 목록으로부터 새로운 IntervalArray를 생성합니다.

array = pd.arrays.IntervalArray.from_tuples([(10, 25),(15, 70)])

생성된 구간들을 출력해 확인해 보겠습니다.

print("Our IntervalArray...\n",array)

각 구간의 오른쪽 끝점(right endpoint)을 가져옵니다.

print("\nThe right endpoints of each Interval in the IntervalArray as an Index...\n", array.right)

전체 예제 코드

아래는 지금까지 설명한 내용을 모두 포함한 전체 코드입니다.

import pandas as pd

# 튜플 배열로부터 새로운 IntervalArray 생성
array = pd.arrays.IntervalArray.from_tuples([(10, 25),(15, 70)])

# IntervalArray 출력
print("Our IntervalArray...\n",array)

# IntervalArray의 길이 확인
# IntervalArray 내 각 구간의 길이를 나타내는 Index를 반환합니다.
print("\nOur IntervalArray length...\n",array.length)

# IntervalArray 내 각 구간의 중간값(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>
[(10, 25], (15, 70]]
Length: 2, dtype: interval[int64, right]

Our IntervalArray length...
Int64Index([15, 55], dtype='int64')

The midpoint of each interval in the IntervalArray...
Float64Index([17.5, 42.5], dtype='float64')

The right endpoints of each Interval in the IntervalArray as an Index...
Int64Index([25, 70], dtype='int64')

결과 해석

출력 결과를 살펴보면 from_tuples() 메서드가 튜플 (10, 25)(15, 70)을 각각 왼쪽은 열린 구간, 오른쪽은 닫힌 구간인 (10, 25], (15, 70]으로 변환한 것을 알 수 있습니다.

  • length: 각 구간의 길이인 15와 55를 Int64Index로 반환합니다.
  • mid: 각 구간의 중간값인 17.5와 42.5를 Float64Index로 반환합니다.
  • right: 각 구간의 오른쪽 끝점인 25와 70을 Int64Index로 반환합니다.

기본 설정상 IntervalArray는 오른쪽이 닫혀 있는(closed='right') 구간을 사용하므로, right 속성을 활용하면 각 구간의 상한값을 손쉽게 추출할 수 있습니다.