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

Python Pandas - IntervalArray에서 각 구간(Interval)의 중간값을 인덱스(Index)로 반환하기

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 속성을 사용하면 각 구간의 길이도 동일한 방식으로 확인할 수 있습니다.