MultiIndex를 생성하려면 pandas.MultiIndex.from_arrays() 메서드를 사용합니다. 각 인덱스 수준(level)에 이름을 지정하려면 names 매개변수를 활용하면 됩니다.
필요한 라이브러리 가져오기
먼저 pandas 라이브러리를 임포트합니다.
import pandas as pd
MultiIndex는 pandas 객체에서 사용되는 다중 계층(hierarchical) 인덱스 객체입니다. 인덱스로 사용할 배열을 먼저 준비합니다.
배열 생성하기
숫자 배열과 문자열 배열 두 개를 준비합니다. 첫 번째 배열은 순위(ranks)를, 두 번째 배열은 학생 이름(student)을 나타냅니다.
arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]
MultiIndex 생성하기
names 매개변수는 각 인덱스 수준의 이름을 설정합니다. from_arrays() 메서드를 사용해 MultiIndex를 생성합니다.
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))생성된 MultiIndex를 출력해 확인합니다.
print("The Multi-index...\n", multiIndex)MultiIndex의 각 수준 이름(names)도 확인할 수 있습니다.
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)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
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']
정리
pd.MultiIndex.from_arrays() 메서드에 여러 개의 배열을 전달하면 손쉽게 다중 계층 인덱스를 만들 수 있으며, names 매개변수에 튜플 형태로 이름을 지정하면 각 인덱스 수준에 의미 있는 레이블을 부여할 수 있습니다. 이렇게 지정된 이름은 multiIndex.names 속성으로 언제든 조회할 수 있어, 복잡한 데이터프레임에서 인덱스 구조를 명확하게 관리하는 데 큰 도움이 됩니다.