본문 바로가기
ChatGPT 아카이브/Pandas

melt() 함수의 옵션 헛갈리지 않게 기억하기

by Nanki 2025. 3. 5.

Pandas의 melt() 함수 정리

함수 이름 pandas.DataFrame.melt()
역할 넓은 형태(Wide Format)의 데이터를 긴 형태(Long Format)로 변환
왜 사용? 여러 개의 열(column)을 하나의 열로 변환하여 분석하기 쉽게 만들기 위해
어떻게 동작? id_vars로 고정할 열, value_vars로 변환할 열을 지정
기본 문법 df.melt(id_vars=['고정할 열'], value_vars=['변환할 열'])
새로운 열 이름 지정 var_name='새로운 변수명', value_name='새로운 값명' 옵션 사용

 

Pandas melt() 옵션을 쉽게 풀어서 설명

옵션 이름뜻을 풀어서 설명쉽게 이해하는 방법예제 값

id_vars → "identity variables" 그대로 유지할 열 (변환하지 않을 열) 이 열은 그대로 유지되면서 나머지 데이터가 녹아내림 id_vars=['date'] → 날짜는 그대로 둠
value_vars → "value variables" 하나로 합쳐질 열 (녹여서 합칠 열들) 이 열들은 하나의 열로 합쳐짐 value_vars=['Seoul', 'Busan'] → 두 개의 열을 하나로 변환
var_name → "variable name" 새로운 "열 이름" (value_vars의 원래 열 이름이 들어감) 원래 열(column) 이름을 저장할 새로운 열의 이름을 정함 var_name='city' → 'Seoul', 'Busan'이 이 열에 저장됨
value_name → "value name" 새로운 "값 이름" (value_vars의 값들이 들어감) 원래 데이터 값들이 들어갈 새로운 열의 이름을 정함 value_name='temperature' → 각 도시의 온도 값이 저장됨

 

📌 예제 코드 (옵션 설명을 생각하며 적용해보기)

import pandas as pd

df = pd.DataFrame({
    'date': ['2024-01-01', '2024-01-02'],
    'Seoul': [5, 3],
    'Busan': [8, 7]
})

df_melted = df.melt(
    id_vars=['date'],         # date는 변환하지 않고 그대로 유지 (ID 역할)
    value_vars=['Seoul', 'Busan'],  # 이 두 개의 열을 하나로 합침
    var_name='city',         # 새롭게 만들어질 열(변수명) → 'city'
    value_name='temperature' # 새롭게 만들어질 값(데이터) → 'temperature'
)

print(df_melted)

 

🔹 출력 결과 (변환 후 데이터)

         date    city  temperature
0  2024-01-01  Seoul            5
1  2024-01-02  Seoul            3
2  2024-01-01  Busan            8
3  2024-01-02  Busan            7

🚀 헷갈리지 않게 기억하는 법

  • id_vars"identity(고유값) 역할을 하는 열" → 변환되지 않고 유지됨

---------------------------------------------------------------------------------------------------------------------------

  • value_vars"value(값)들이 모여 하나로 합쳐질 열" → 여러 개의 열이 하나로 묶임
  • var_name"variable(변수)들의 이름이 들어갈 새 열" → value_vars의 원래 열 이름이 저장됨

 ---------------------------------------------------------------------------------------------------------------------------

  • value_name"값(value)들이 들어갈 새 열" → value_vars의 실제 데이터 값이 저장됨

 

 

반응형