본문 바로가기
데이터 분석/데이터 전처리

[Pandas] 30. 데이터 재구조화(Reshape) 하기 (feat. melt)

by 부자 꽁냥이 2022. 11. 18.

반갑습니다. 꽁냥이입니다. 이번 포스팅에서는 Pandas에서 데이터 재구조화할 때 사용되는 melt 메서드 사용법을 알아보겠습니다.

 

[Pandas] 31. 데이터 재구조화(Reshape)하기 (feat. pivot, pivot_table)

[Pandas] 32. 데이터 재구조화(Reshape)하기 (feat. stack, unstack)

[Pandas] 33. 데이터 재구조화(Reshape)하기 (feat. wide_to_long)

[Pandas] 34. 데이터 재구조화(Reshape)하기 (feat. crosstab)


   melt를 이용한 데이터 Reshape(재구조화)

melt는 필수적으로 id_vars 인자를 받게 되어 있습니다. 이 인자에는 데이터프레임 칼럼 이름이 들어가는데요. melt는 id_vars를 제외한 나머지 칼럼들을 variable이라는 하나의 칼럼에 위에서부터 아래로 넣어줍니다. 그리고 id_vars와 variable 칼럼에 대응하는 값을 value 칼럼에 넣어주게 됩니다. 아래 그림은 melt 적용 전 후 데이터프레임 모습입니다.

 

이때 기존 데이터 행 개수(4개) 변화를 보면 id_vars를 제외한 칼럼 개수(2)의 배수(4*2)로 증가한 것을 알 수 있습니다.

Pandas melt를 이용한 데이터 재구조화

 

이제 개념을 알았으니 코드를 통해 melt 사용법을 직접 체험해봅시다~ 

 

이번 포스팅에서 사용할 데이터를 만들어줍니다. 

 

import pandas as pd

data = {
    'STUDNET_ID':['S_1', 'S_1', 'S_2', 'S_2'],
    'TEACHER_ID':['T_1', 'T_2', 'T_1', 'T_2'],
    'CLASS_ROOM':[101, 102, 201, 203],
    'TIME':[1, 2, 3, 4]
}
df = pd.DataFrame(data)
df

 

 

이제 melt를 통해 데이터를 재구조화 해봅시다. melt는 첫 번째 인자로 재구조화하려는 데이터프레임, id_vars 인자를 받습니다.

 

pd.melt(df, id_vars=['STUDNET_ID', 'TEACHER_ID'])

 

 

이때 var_name과 value_name 인자를 통해 variable과 value 칼럼 이름을 변경할 수 있습니다.

 

pd.melt(df, id_vars=['STUDNET_ID', 'TEACHER_ID'], var_name='COL_NAME', value_name='VALUE')

 


꽁냥이는 데이터 재구조화를 많이 이용하지는 않습니다만 알아두면 코드 몇 줄이면 데이터를 재구조화할 수 있어서 너무 편합니다.

 

부디 이번 포스팅이 많은 분들께 도움이 되시길 바라며 이상 포스팅 마치겠습니다. 지금까지 꽁냥이의 글 읽어주셔서 감사합니다.


댓글


맨 위로