6. 데이터 재구조화 1 - melt

Ryan·2025년 1월 9일

SQL/Python 분석

목록 보기
10/94

6. 데이터 재구조화 1 - Melt

데이터를 세로형으로 변환하기

데이터 분석과 시각화를 위해 가로로 넓게 펼쳐진 데이터를 세로형(long format)으로 변환해야 할 때가 있습니다. 이를 위해 Pandas의 melt() 함수를 활용합니다.


1. 기본 melt() 함수 사용

다음은 기본적으로 melt()를 적용한 예제입니다:

python
코드 복사
# 기본 melt 함수 사용
df.melt('상품군별(1)')

# 결과 확인
df.head()
df.columns[:3]
  • melt('상품군별(1)'): 특정 컬럼(상품군별(1))을 기준으로 데이터를 세로형으로 변환합니다.
  • 결과적으로 가로 방향으로 나열된 컬럼이 세로 방향의 행 데이터로 변환됩니다.

2. id_vars를 활용한 데이터 변환

id_vars를 사용하여 변환 대상에서 제외할 컬럼을 지정할 수 있습니다:

python
코드 복사
# id_vars를 지정하여 melt 함수 실행
df.melt(id_vars=df.columns[:3])

# 결과 확인
df.head(1)
  • id_vars=df.columns[:3]: 첫 세 개의 컬럼을 고정(유지)하고 나머지 컬럼을 변환 대상으로 지정합니다.
  • 이 과정은 데이터를 가로형에서 세로형으로 풀어주는 재구조화 과정입니다.

3. melt() 결과를 변수에 저장

melt() 함수의 결과를 새로운 변수에 저장하여 향후 분석에 활용할 수 있습니다:

python
코드 복사
# 최종적으로 필요한 형태로 데이터 변환
result = df.melt(
    id_vars=df.columns[:3],  # 유지할 컬럼
    var_name='날짜',         # 새로 생성될 날짜 컬럼 이름
    value_name='거래액'      # 새로 생성될 값 컬럼 이름
)
  • var_name: 가로형 데이터를 풀어낸 후 생성되는 컬럼의 이름을 지정합니다.
  • value_name: 변환 후 값(value)이 들어갈 컬럼의 이름을 지정합니다.
  • result 변수에는 세로형으로 변환된 데이터가 저장됩니다.

변환 전후 비교

변환 과정을 통해 데이터는 다음과 같은 형태로 변경됩니다:

  • 변환 전:
    상품군별(1)2023-012023-022023-03...
    음식서비스500052005400...
  • 변환 후:
    상품군별(1)날짜거래액
    음식서비스2023-015000
    음식서비스2023-025200
    음식서비스2023-035400

다음 단계

변환된 데이터는 이후 추가 분석과 시각화에 적합한 구조를 가지게 됩니다. 이제 이 데이터를 활용하여 인사이트를 도출할 준비를 할 수 있습니다.

0개의 댓글