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

Python Pandas – MultiIndex에서 레벨(Level) 가져오는 방법

Pandas의 MultiIndex에서 레벨(level) 정보를 확인하려면 MultiIndex.levels 속성을 사용하면 됩니다. 이 속성은 다중 인덱스를 구성하는 각 레벨의 고유한 값들을 반환합니다.

필수 라이브러리 임포트

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

MultiIndex란?

MultiIndex는 Pandas 객체에서 사용되는 다층(multi-level), 즉 계층적(hierarchical) 인덱스 객체입니다. 하나의 인덱스로 여러 차원의 데이터를 표현할 수 있어 복잡한 데이터 구조를 다룰 때 매우 유용합니다.

MultiIndex 생성하기

먼저 인덱스로 사용할 배열을 생성합니다.

arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]

위 배열은 두 개의 리스트로 구성되어 있는데, 첫 번째 리스트는 순위(ranks)에 해당하고 두 번째 리스트는 학생 이름(student)에 해당합니다.

from_arrays() 메서드를 사용하면 배열로부터 MultiIndex를 생성할 수 있습니다. 이때 names 매개변수를 사용하면 각 인덱스 레벨에 이름을 지정할 수 있습니다.

multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))

레벨 가져오기

생성된 MultiIndex의 레벨은 levels 속성으로 확인할 수 있습니다.

print("\nThe levels in Multi-index...\n", multiIndex.levels)

전체 예제 코드

지금까지 설명한 내용을 모두 포함한 전체 코드는 다음과 같습니다.

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 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 levels in Multi-index...
   [[1, 2, 3, 4, 5], ['Chris', 'Jacob', 'John', 'Keiron', 'Tim']]

결과 해석

출력 결과를 보면 levels 속성은 각 레벨별 고유값 목록을 반환한다는 점을 알 수 있습니다. 첫 번째 레벨(ranks)은 [1, 2, 3, 4, 5], 두 번째 레벨(student)은 사전순으로 정렬된 ['Chris', 'Jacob', 'John', 'Keiron', 'Tim']을 반환합니다. 즉, 원본 데이터의 입력 순서와 관계없이 레벨 값은 항상 정렬된 상태로 저장됩니다.