Pandas에서 MultiIndex 내 특정 레이블 시퀀스가 위치한 인덱스 번호를 확인하려면 get_locs() 메서드를 사용합니다. 이 메서드는 전달된 레이블 또는 레이블 조건에 해당하는 위치(정수 인덱스)를 반환합니다.
필요한 라이브러리 임포트
먼저 pandas 라이브러리를 임포트합니다.
import pandas as pd
MultiIndex 생성하기
MultiIndex는 pandas 객체에서 사용되는 다중 레벨(계층형) 인덱스 객체입니다. pd.MultiIndex.from_arrays()를 사용하여 두 개의 배열로부터 MultiIndex를 생성할 수 있습니다.
multiIndex = pd.MultiIndex.from_arrays([list('pqrrst'), list('kytssp')])생성된 MultiIndex 확인하기
생성된 MultiIndex를 화면에 출력해 내용을 확인합니다.
print("The MultiIndex...\n", multiIndex)레이블 시퀀스의 위치 가져오기
get_locs() 메서드에 찾고자 하는 레이블을 전달하면 해당 레이블이 위치한 인덱스 번호를 얻을 수 있습니다.
print("\nGet the locations in MultiIndex...\n", multiIndex.get_locs('s'))전체 예제 코드
지금까지 설명한 내용을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
# MultiIndex는 pandas 객체를 위한 다중 레벨(계층형) 인덱스 객체입니다
multiIndex = pd.MultiIndex.from_arrays([list('pqrrst'), list('kytssp')])
# MultiIndex 출력
print("The MultiIndex...\n", multiIndex)
# MultiIndex의 레벨(levels) 확인
print("\nThe levels in MultiIndex...\n", multiIndex.levels)
# 레이블 's'의 위치 가져오기
print("\nGet the locations in MultiIndex...\n", multiIndex.get_locs('s'))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
The MultiIndex...
MultiIndex([('p', 'k'),
('q', 'y'),
('r', 't'),
('r', 's'),
('s', 's'),
('t', 'p')],
)
The levels in MultiIndex...
[['p', 'q', 'r', 's', 't'], ['k', 'p', 's', 't', 'y']]
Get the locations in MultiIndex...
[4]출력 결과를 보면 첫 번째 레벨에서 레이블 's'가 포함된 튜플은 ('s', 's')뿐이며, 이 항목은 MultiIndex에서 4번째 위치(인덱스 4)에 있음을 알 수 있습니다. 이처럼 get_locs() 메서드는 복잡한 계층형 인덱스 구조에서 원하는 레이블의 위치를 손쉽게 파악할 때 유용하게 활용됩니다.