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

Python Pandas – MultiIndex에서 레벨 이름 가져오기

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() 메서드를 사용할 수 있습니다.