데이터 분석을 할 때, 데이터의 형태가 분석 목적에 맞지 않을 수 있습니다. 특히, 데이터를 시각화하거나 특정 분석을 하기 위해서는 데이터의 형태를 변환하는 작업이 필요할 때가 많습니다. pandas는 이러한 작업을 간편하게 할 수 있도록 melt라는 강력한 함수를 제공합니다. 이 글에서는 melt를 사용해야 하는 데이터 유형과 그 사용 방법을 예시와 함께 설명하겠습니다.
1. melt가 필요한 데이터 유형
melt 함수는 데이터프레임을 “wide format”에서 “long format”으로 변환할 때 사용됩니다.
Wide format: 하나의 행에 여러 열이 있는 형식입니다. 이 형식에서는 일반적으로 변수들이 여러 개의 열에 나뉘어 표시됩니다.
Long format: 각 행이 하나의 관측값을 나타내며, 여러 변수를 하나의 열에 모아서 표시하는 형식입니다.
데이터 시각화: 많은 시각화 라이브러리는 “long format” 데이터를 필요로 합니다. 예를 들어, seaborn 라이브러리로 여러 변수를 한꺼번에 시각화할 때, 데이터가 “long format”일 때 더 쉽게 작업할 수 있습니다.
집계 및 분석: “wide format” 데이터는 그룹화된 분석이나 피벗 테이블 생성에 불리할 수 있습니다. “long format” 데이터로 변환하여 더 효율적으로 분석할 수 있습니다.
데이터 정리: 데이터를 정규화하고, 여러 열에 분산된 데이터를 하나의 열로 모아서 정리된 형태로 만들 때 melt가 필요합니다.
import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt# 데이터프레임 생성 (Wide Format)df = pd.DataFrame({'Year': ["2020", "2021", "2022"],'Product_A': [100, 110, 120],'Product_B': [150, 160, 170],'Product_C': [200, 210, 220]})df
Year
Product_A
Product_B
Product_C
0
2020
100
150
200
1
2021
110
160
210
2
2022
120
170
220
melt 사용하여 Long Format으로 변환합니다.
# melt 사용하여 Long Format으로 변환df_melted = pd.melt(df, id_vars=['Year'], var_name='Product', value_name='Sales')df_melted
Year
Product
Sales
0
2020
Product_A
100
1
2021
Product_A
110
2
2022
Product_A
120
3
2020
Product_B
150
4
2021
Product_B
160
5
2022
Product_B
170
6
2020
Product_C
200
7
2021
Product_C
210
8
2022
Product_C
220
아래 코드를 실행하면 Product 데이터의 각 product를 다른 색으로 표현하는 seaborn 시각화가 생성됩니다.
# Seaborn을 사용하여 시각화sns.set(style="whitegrid")# lineplot으로 시각화sns.lineplot(data=df_melted, x='Year', y='Sales', hue='Product', marker='o')# 그래프 타이틀과 축 레이블 설정plt.title('Yearly Sales by Product')plt.xlabel('Year')plt.ylabel('Sales')# 그래프 출력plt.show()
seaborn의 hue 옵션은 그래프에서 데이터 포인트를 그룹화하여 색상으로 구분해줍니다. 예를 들어, hue=’Category’로 지정하면 Category 변수의 값에 따라 각 데이터 포인트가 다른 색상으로 표시됩니다.
4. 결론
pandas.melt() 함수는 데이터를 “wide format”에서 “long format”으로 변환하는 데 유용한 도구입니다. 이 함수는 데이터 시각화, 분석, 정리를 위해 데이터를 재구성할 때 매우 유용합니다. 데이터의 구조에 따라 적절한 형태로 변환하는 것은 데이터 분석의 필수적인 과정 중 하나이며, melt 함수는 이를 간편하게 해결할 수 있습니다.
이를 통해, 데이터를 더 쉽게 분석하고, 시각화하며, 통찰을 얻을 수 있을 것입니다. melt 함수의 사용법을 익혀 두면, 데이터 변환 과정에서 발생하는 다양한 문제를 효과적으로 해결할 수 있습니다.