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

Python Pandas – droplevel()로 특정 레벨이 제거된 MultiIndex 반환하기

Pandas에서 요청된 레벨이 제거된 MultiIndex를 반환하려면 MultiIndex.droplevel() 메서드를 사용합니다. 이 메서드에 제거하고자 하는 레벨을 인자로 전달하면 해당 수준이 삭제된 새로운 인덱스가 반환됩니다.

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

import pandas as pd

MultiIndex는 pandas 객체를 위한 다중 레벨(hierarchical) 인덱스 객체입니다. 예제에서 사용할 배열을 생성해 보겠습니다.

arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]

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

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

이제 특정 레벨을 제거해 보겠습니다. 여기서는 레벨 1을 지정했으므로 첫 번째 레벨('student')이 삭제됩니다.

print("\n레벨 제거 후 Multi-index...\n", multiIndex.droplevel(1))

전체 예제 코드

다음은 위 과정을 모두 포함한 완성된 코드입니다.

import pandas as pd

# MultiIndex는 pandas 객체를 위한 다중 레벨(계층적) 인덱스 객체입니다.
# 배열 생성
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]

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

# 특정 레벨 제거
# 레벨 1을 지정했으므로 레벨 1이 삭제됨
print("\nMulti-index after dropping a level...\n", multiIndex.droplevel(1))

실행 결과

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

The Multi-index...
MultiIndex([(2, 'Peter'),
            (4, 'Chris'),
            (3, 'Andy'),
            (1, 'Jacob')],
            names=['ranks', 'student'])

The levels in Multi-index...
   [[1, 2, 3, 4], ['Andy', 'Chris', 'Jacob', 'Peter']]

Multi-index after dropping a level...
   Int64Index([2, 4, 3, 1], dtype='int64', name='ranks')