Pandas에서 MultiIndex(다중 인덱스)의 각 레벨 이름을 확인하려면 MultiIndex.names 속성을 사용하면 됩니다. 이 속성은 인덱스의 각 계층(level)에 설정된 이름들을 리스트 형태로 반환합니다.
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
MultiIndex란?
MultiIndex는 Pandas 객체에서 사용할 수 있는 다중 레벨(multi-level), 즉 계층적(hierarchical) 인덱스 객체입니다. 하나의 인덱스 축에 여러 개의 하위 레벨을 두어 복잡한 데이터 구조를 효율적으로 표현할 수 있습니다.
예제에서 사용할 배열을 먼저 생성합니다.
arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]
from_arrays() 메서드를 사용하면 위 배열들로부터 MultiIndex를 만들 수 있습니다. 이때 names 매개변수를 지정하면 각 인덱스 레벨에 이름을 부여할 수 있습니다.
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))위 코드에서 첫 번째 레벨은 'ranks', 두 번째 레벨은 'student'라는 이름이 지정됩니다.
레벨 이름 확인하기
생성된 MultiIndex의 레벨 이름은 다음과 같이 확인할 수 있습니다.
print("\nThe names of levels in Multi-index...\n", multiIndex.names)전체 예제 코드
아래는 위 내용을 모두 포함한 전체 예제입니다.
import pandas as pd
# MultiIndex는 pandas 객체를 위한 다중 레벨(계층적) 인덱스 객체입니다
# 배열 생성
arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]
# names 매개변수로 각 인덱스 레벨의 이름을 설정하고
# from_arrays()로 MultiIndex를 생성합니다
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
# MultiIndex 출력
print("The Multi-index...\n", multiIndex)
# MultiIndex의 레벨 이름 가져오기
print("\nThe names of levels in Multi-index...\n", multiIndex.names)
# MultiIndex의 레벨 값 가져오기
print("\nThe levels in Multi-index...\n", multiIndex.levels)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
The Multi-index... MultiIndex([(1, 'John'), (2, 'Tim'), (3, 'Jacob'), (4, 'Chris'), (5, 'Keiron')], names=['ranks', 'student']) The names of levels in Multi-index... ['ranks', 'student'] The levels in Multi-index... [[1, 2, 3, 4, 5], ['Chris', 'Jacob', 'John', 'Keiron', 'Tim']]
정리
multiIndex.names를 호출하면 각 레벨에 부여된 이름 리스트인 ['ranks', 'student']가 반환되고, multiIndex.levels를 호출하면 각 레벨에 포함된 고유값들이 정렬되어 반환됩니다. 참고로 이미 생성된 MultiIndex의 레벨 이름을 변경해야 할 경우에는 set_names() 메서드를 사용할 수 있습니다.