Pandas의 melt 메서드는 데이터프레임을 길게(long format) 변환하는 데 사용됩니다. 이는 열(column)을 행(row)으로 “녹이는” 방식으로, 데이터 분석이나 시각화를 위해 데이터 구조를 재구성할 때 유용합니다.

 

주요 매개변수

id_vars: 녹이지 않을 열을 지정합니다. 이 열들은 결과 데이터프레임에서 고정된 열로 유지됩니다.

value_vars: 녹일 열을 지정합니다. 지정된 열들은 행으로 변환됩니다. 기본값은 나머지 모든 열입니다.

var_name: 녹여진 열의 이름을 지정합니다. 기본값은 'variable'입니다.

value_name: 녹여진 값의 이름을 지정합니다. 기본값은 'value'입니다.

 

사용 목적

데이터를 wide format에서 long format으로 변환

시각화 라이브러리(e.g., Seaborn, Matplotlib)에서 사용하는 데이터 형태로 변환

데이터 정리와 조작

 

예제 코드

 

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

 

import pandas as pd

 

# 샘플 데이터프레임 생성

df = pd.DataFrame({

    'Name': ['Alice', 'Bob', 'Charlie'],

    'Math': [85, 78, 92],

    'Science': [88, 89, 94],

    'English': [90, 80, 85]

})

 

print("원본 데이터프레임:")

print(df)

 

출력:

 

      Name  Math  Science  English

0    Alice    85       88       90

1      Bob    78       89       80

2  Charlie    92       94       85

 

데이터프레임을 melt 사용해 변환

 

# melt 메서드 사용

melted_df = pd.melt(df, id_vars=['Name'], value_vars=['Math', 'Science', 'English'],

                    var_name='Subject', value_name='Score')

 

print("\nMelt 메서드로 변환된 데이터프레임:")

print(melted_df)

 

출력:

 

      Name   Subject  Score

0    Alice      Math     85

1      Bob      Math     78

2  Charlie      Math     92

3    Alice   Science     88

4      Bob   Science     89

5  Charlie   Science     94

6    Alice   English     90

7      Bob   English     80

8  Charlie   English     85

 

설명

1. id_vars=['Name']: Name 열은 고정되어 녹지 않습니다.

2. value_vars=['Math', 'Science', 'English']: 이 열들이 녹여져서 Subject 열로 변환됩니다.

3. var_name='Subject': 녹여진 열의 이름이 Subject가 됩니다.

4. value_name='Score': 값의 열 이름이 Score가 됩니다.

 

요약

 

melt 메서드는 데이터를 깔끔한 형태로 재구성해 데이터 분석과 시각화에 적합한 형식으로 변환합니다. 이를 활용하면 복잡한 데이터 구조를 효율적으로 다룰 수 있습니다.

+ Recent posts