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

Python Pandas – get_slice_bound()로 주어진 레이블의 오른쪽 슬라이스 경계 구하기

주어진 레이블에 해당하는 오른쪽(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가 반환됩니다.