[파이썬] pandas MultiIndex에서 그룹화

pandas MultiIndex는 데이터프레임의 인덱스를 한 단계 이상의 계층 구조로 만들어줍니다. 이는 데이터의 다양한 측면을 더 쉽게 분석하고 그룹화할 수 있는 기능을 제공합니다.

그룹화하기

만약 다음과 같은 MultiIndex가 있는 데이터프레임이 있다고 가정해봅시다.

import pandas as pd

data = {
    ('A', 'North'): [10, 20, 30],
    ('A', 'South'): [40, 50, 60],
    ('B', 'North'): [70, 80, 90],
    ('B', 'South'): [100, 110, 120]
}

df = pd.DataFrame(data, index=[1, 2, 3])

위의 코드에서 df는 2개의 계층으로 구성된 MultiIndex를 가지는 데이터프레임입니다. ‘A’와 ‘B’는 첫번째 계층에 해당하고, ‘North’와 ‘South’는 두번째 계층에 해당합니다.

이제 이 데이터프레임을 첫번째 계층을 기준으로 그룹화해보겠습니다.

grouped = df.groupby(level=0).sum()

위의 코드를 실행하면 grouped 변수에 첫번째 계층을 기준으로 그룹화된 결과가 저장됩니다. 결과는 다음과 같습니다.

    North  South
A      60    150
B     150    330

여기서 각 그룹은 ‘A’와 ‘B’이며, 각각의 그룹에 속하는 항목들은 첫번째 계층을 포함한 모든 값을 합산한 값으로 표시됩니다.

그룹화된 데이터에 작업 수행하기

그룹화된 데이터프레임에는 다양한 작업을 수행할 수 있습니다. 예를 들어, 각 그룹별로 평균 값을 계산하려면 다음과 같이 할 수 있습니다.

grouped = df.groupby(level=0).mean()

위의 코드를 실행하면 grouped 변수에 평균값이 저장됩니다.

이외에도 그룹화된 데이터프레임에 대해 통계 분석이나 시각화를 수행할 수 있습니다. pandas의 다양한 기능을 활용하여 그룹화된 데이터프레임에서 원하는 작업을 수행할 수 있습니다.

결론

pandas MultiIndex에서 그룹화는 데이터의 다양한 측면을 쉽게 분석하고 그룹화하는 강력한 기능입니다. 이를 통해 데이터의 계층 구조를 활용하여 원하는 작업을 수행할 수 있습니다. pandas의 그룹화 기능을 효과적으로 활용하면 데이터프레임의 다양한 패턴과 특징들을 빠르게 파악할 수 있습니다.