🖥️ IT, 컴퓨터/🐍 Python

[Python] 판다스의 unstack() 메소드란? :: 멀티 인덱스에서 하나를 열로 만들어줌

김 홍시 2024. 6. 11. 13:48
반응형

unstack() 메소드는 Pandas에서 사용되는 메소드로, DataFrame의 인덱스 레벨을 컬럼으로 변환하여 데이터를 재구조화합니다. 이를 통해 그룹화된 데이터를 보다 쉽게 볼 수 있는 형태로 변환할 수 있습니다. unstack() 메소드를 이해하기 위해, df.groupby(['neighbourhood', 'neighbourhood_group']).price.mean().unstack() 구문을 단계별로 설명하겠습니다.

  1. 그룹화 및 평균 계산:

     df.groupby(['neighbourhood', 'neighbourhood_group']).price.mean()
    • df DataFrame을 'neighbourhood'와 'neighbourhood_group' 컬럼으로 그룹화합니다.

    • 각 그룹에서 'price'의 평균을 계산합니다.

    • 결과는 MultiIndex Series로, 각 (neighbourhood, neighbourhood_group) 조합에 대해 평균 'price'가 계산됩니다.

      예를 들어, 데이터가 다음과 같다고 가정합시다:

      neighbourhood neighbourhood_group price
      A Group1 100
      A Group1 200
      A Group2 150
      B Group1 300
      B Group2 250

      그룹화 및 평균 계산 결과는 다음과 같습니다:

      (neighbourhood, neighbourhood_group) price
      (A, Group1) 150
      (A, Group2) 150
      (B, Group1) 300
      (B, Group2) 250
  2. unstack() 메소드 적용:

     .unstack()
    • unstack() 메소드는 MultiIndex를 가진 Series를 DataFrame으로 변환하여, 인덱스의 한 레벨을 컬럼으로 만듭니다.

    • 기본적으로 가장 안쪽의 인덱스 레벨이 컬럼으로 이동합니다.

      위의 결과에 unstack()을 적용하면 다음과 같은 DataFrame이 됩니다:

      neighbourhood Group1 Group2
      A 150 150
      B 300 250

여기서 'Group1'과 'Group2'는 'neighbourhood_group'의 값들이며, 'A'와 'B'는 'neighbourhood'의 값들입니다. 이렇게 변환된 DataFrame은 각 'neighbourhood'별로 각 'neighbourhood_group'에 해당하는 'price'의 평균을 열(column) 형식으로 보여줍니다.

따라서, unstack() 메소드는 데이터를 보다 쉽게 읽고 해석할 수 있도록 MultiIndex Series를 DataFrame으로 변환하는 역할을 합니다.

반응형