Pandas 모듈의 melt() 함수는 ID변수 컬럼을 기준으로 다른 컬럼들을 데이터에 녹여내는 것이다.
즉, 컬럼명을 데이터에 녹이는 것이라고 생각하면 쉽다.
문법
pd.melt( 테이블명, id_vars = 기준 컬럼 , value_vars = 녹여낼 컬럼 )
또는
테이블명.melt( id_vars = 기준 컬럼 , value_vars = 녹여낼 컬럼 )
우선, 설명을 위해 임의의 데이터프레임을 만듭니다.
import pandas as pd
dict = {}
dict['class_no'] = ['001','002','003','004']
dict['class'] = ['A','B','C','D']
dict['male_child'] = [1,2,3,4]
dict['male_adult'] = [5,6,7,8]
dict['female_child'] = [9,10,11,12]
dict['female_adult'] = [13,14,15,16]
dict['etc'] = ['pandas','melt','test','exemple']
test = pd.DataFrame(dict)
test
1. pd.melt()를 사용하여 한 개의 컬럼 데이터로 만들기
기준이 되는 컬럼(id_vars)은 class, 데이터로 만들 컬럼(value_vars)은 male_child로 설정하였다.
variable이라는 컬럼에 male_child 데이터가 생성되었고, value에 male_child의 값들이 그대로 입력된다.
test2 = pd.melt(test, id_vars = 'class', value_vars = 'male_child')
test2
2. 여러개의 컬럼 데이터로 만들기
male_child 뿐만 아니라 male_adult, female_child, female_adult 도 데이터에 녹여내려면, value_vars에 리스트를 사용하여 컬럼명을 묶으면 된다.
test3 = pd.melt(test, id_vars = 'class',
value_vars = ['male_child','male_adult','female_child','female_adult'])
test3
3. 기준이 되는 컬럼(id_vars) 여러개 가져오기
이전에는 id_vars변수를 'class' 하나로 지정하여 melt()를 실행하였다. id_vars에 여러개의 컬럼을 묶어 여러개의 데이터를 한번에 확인하려면, 리스트로 컬럼들을 묶으면 된다.
test3 = pd.melt(test, id_vars = ['class_no','class'],
value_vars = ['male_child','male_adult','female_child','female_adult'])
test3
4. variable, value 이름 지정하기
melt() 를 사용하여 데이터를 녹여내면 자동적으로 컬럼명이 variable과 value으로 설정된다. var_name, value_name을 사용하면 컬럼명을 원하는 대로 바꿀 수 있다.
test3 = pd.melt(test, id_vars = ['class_no','class'],
value_vars = ['male_child','male_adult','female_child','female_adult'],
var_name = 'gender',
value_name = 'cnt')
test3
'Study > PYTHON' 카테고리의 다른 글
[jupyter] 테이블 전체 왼쪽 정렬하는 방법 (0) | 2023.02.24 |
---|---|
[나도코딩] 파이썬 강의_퀴즈7 (0) | 2021.10.24 |
[나도코딩] 파이썬 강의_퀴즈6 (0) | 2021.10.17 |
[나도코딩] 파이썬 강의_퀴즈5 (0) | 2021.10.16 |
[나도코딩] 파이썬 강의_퀴즈4 (0) | 2021.10.12 |