주어진 레이블에 해당하는 오른쪽(right) 슬라이스 경계를 계산하려면 index.get_slice_bound() 메서드를 사용합니다. 이때 side 매개변수를 'right'로 설정해야 합니다.
메서드 개요
get_slice_bound()는 슬라이싱 작업 시 특정 레이블이 어느 위치의 경계에 해당하는지 정수 위치값으로 반환해 주는 메서드입니다. 주요 매개변수는 다음과 같습니다.
- label: 경계를 찾고자 하는 레이블 값
- side: 'left' 또는 'right' 중 선택하며, 왼쪽 또는 오른쪽 경계를 결정합니다.
- kind: 'getitem' 또는 'loc' 중 선택하며, 인덱싱 방식과의 호환성을 위해 지정합니다.
라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
Pandas 인덱스 생성
정수 값들로 구성된 Pandas 인덱스를 생성합니다.
index = pd.Index([10, 20, 30, 40, 50, 60, 70])
인덱스 출력
생성된 Pandas 인덱스를 화면에 출력합니다.
print("Pandas Index...\n", index)
오른쪽 슬라이스 경계 구하기
side 매개변수를 'right'로 설정하면 주어진 레이블의 오른쪽 슬라이스 경계가 반환됩니다.
print("\nGet the right slice bound...\n", index.get_slice_bound(30, side='right', kind='getitem'))
전체 예제 코드
지금까지 설명한 내용을 모두 포함한 전체 코드는 다음과 같습니다.
import pandas as pd
# Pandas 인덱스 생성
index = pd.Index([10, 20, 30, 40, 50, 60, 70])
# Pandas 인덱스 출력
print("Pandas Index...\n", index)
# 인덱스에 포함된 요소 개수 확인
print("\nNumber of elements in the index...\n", index.size)
# 오른쪽 슬라이스 경계 구하기
# side 매개변수가 'right'로 설정되면 해당 레이블의 오른쪽 슬라이스 경계가 반환됨
print("\nGet the right slice bound...\n", index.get_slice_bound(30, side='right', kind='getitem'))
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Pandas Index... Int64Index([10, 20, 30, 40, 50, 60, 70], dtype='int64') Number of elements in the index... 7 Get the right slice bound... 3
결과 해석
레이블 30은 인덱스에서 위치 2에 있습니다. 그런데 side='right'로 설정했기 때문에 반환되는 값은 3입니다. 이는 슬라이싱 시 레이블 30의 오른쪽 경계가 배타적(exclusive) 상한으로 처리되어, 해당 레이블 바로 다음 위치가 경계로 지정되기 때문입니다. 만약 side='left'로 설정했다면 레이블 30 자신의 위치인 2가 반환됩니다.