[Python] 판다스의 unstack() 메소드란? :: 멀티 인덱스에서 하나를 열로 만들어줌
unstack()
메소드는 Pandas에서 사용되는 메소드로, DataFrame의 인덱스 레벨을 컬럼으로 변환하여 데이터를 재구조화합니다. 이를 통해 그룹화된 데이터를 보다 쉽게 볼 수 있는 형태로 변환할 수 있습니다. unstack()
메소드를 이해하기 위해, df.groupby(['neighbourhood', 'neighbourhood_group']).price.mean().unstack()
구문을 단계별로 설명하겠습니다.
그룹화 및 평균 계산:
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
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으로 변환하는 역할을 합니다.