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

Python Pandas – MultiIndex의 레벨 개수를 정수로 확인하는 방법

Pandas에서 MultiIndex가 가진 레벨(level)의 개수를 정수로 확인하려면 MultiIndex.nlevels 속성을 사용하면 됩니다. 이 속성은 해당 MultiIndex가 몇 개의 계층으로 구성되어 있는지를 숫자 값으로 반환합니다.

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

import pandas as pd

MultiIndex란?

MultiIndex는 Pandas 객체에서 사용할 수 있는 다중 레벨(multi-level), 즉 계층적(hierarchical) 인덱스 객체입니다. 하나의 인덱스 안에 여러 개의 하위 레벨을 두어 복잡한 데이터 구조를 효율적으로 다룰 수 있게 해줍니다.

MultiIndex 생성하기

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

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

names 매개변수는 각 인덱스 레벨에 이름을 지정하는 역할을 합니다. 그리고 from_arrays() 메서드를 사용하면 배열로부터 MultiIndex를 만들 수 있습니다.

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

nlevels 속성으로 레벨 개수 확인하기

이제 nlevels 속성을 사용해 MultiIndex의 레벨 개수를 정수로 출력해 보겠습니다.

print("\nMulti-index의 레벨 개수...\n", multiIndex.nlevels)

전체 예제 코드

다음은 지금까지의 내용을 모두 포함한 전체 코드입니다.

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 number of levels in Multi-index...\n", multiIndex.nlevels)

# 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 number of levels in Multi-index...
   2

The levels in Multi-index...
   [[1, 2, 3, 4, 5], ['Chris', 'Jacob', 'John', 'Keiron', 'Tim']]

정리

실행 결과를 보면 nlevels 속성이 2를 반환한 것을 확인할 수 있습니다. 이는 'ranks'와 'student'라는 두 개의 레벨로 MultiIndex가 구성되어 있기 때문입니다. 또한 levels 속성을 사용하면 각 레벨에 포함된 실제 값들을 확인할 수 있습니다. 참고로 levels의 값들은 사전순으로 정렬되어 출력되는 점도 함께 기억해 두면 좋습니다.