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

Python Pandas – MultiIndex에서 각 레벨의 길이가 담긴 튜플 얻기

MultiIndex에서 각 레벨의 길이를 담은 튜플을 얻으려면 Pandas의 MultiIndex.levshape 속성을 사용하면 됩니다.

levshape 속성이란?

MultiIndex는 pandas 객체에서 사용되는 다중 레벨(계층형) 인덱스 객체입니다. levshape 속성은 각 레벨에 포함된 고유 값의 개수를 튜플 형태로 반환하므로, 복잡한 계층형 인덱스의 구조를 한눈에 파악할 때 매우 유용합니다.

단계별 구현 방법

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

import pandas as pd

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'))

이제 levshape 속성으로 각 레벨의 길이가 담긴 튜플을 출력합니다.

print("\nThe tuple with the length of each level in a Multi-index...\n", multiIndex.levshape)

전체 예제 코드

다음은 위 과정을 하나로 정리한 전체 코드입니다.

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)

# 각 레벨의 길이가 담긴 튜플 확인
print("\nThe tuple with the length of each level in a Multi-index...\n", multiIndex.levshape)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

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']]

The tuple with the length of each level in a Multi-index...
   (5, 5)

정리

출력 결과를 보면 첫 번째 레벨(ranks)에는 고유 값이 5개, 두 번째 레벨(student)에도 고유 값이 5개 있으므로 levshape(5, 5)라는 튜플을 반환합니다. 참고로 nlevels는 레벨의 개수를 정수로 반환하고, levels는 각 레벨의 실제 고유 값 목록을 반환한다는 점도 함께 기억해두면 좋습니다.