Home pandas - melt()
Post
Cancel

pandas - melt()

pandas.melt

reference

  1. document : pandas.melt

melt() 함수는 표현처럼 데이터프레임을 마치 ‘녹이는’ 것처럼 재구성한다.

기존의 열(columns) 이름을 값(values)으로 내려 각각의 행(index)에 열 이름과 각각 해당하는 값을 나열해서 보여준다.

1
2
3
4
5
6
7
8
9
import pandas as pd

df = pd.DataFrame({
    'id': ['201','873','385','505'],
    'type':['A','B','C','D'],
    'count':[8,8,6,2]
})

print(df)

idtypecount

    
0201A8
1873B8
2385C6
3505D2

위 데이터프레임에서 type 컬럼은 A,B,C,D 라는 4가지 값을 가지고 있다.

melt()를 사용해 type을 값으로 표기하고 각각의 기존 값(A,B,C,D)는 그것에 뒤따라 붙일 수 있다.

1
pd.melt(df, id_vars='id', value_vars='type')

idvariablevalue

    
0201typeA
1873typeB
2385typeC
3505typeD

만약 type, count 컬럼을 모두 값으로 표기하고 싶다면 value_vars 인자를 리스트로 전달하면 된다.

1
pd.melt(df, id_vars='id', value_vars=['type','count'])

idvariablevalue

    
0201typeA
1873typeB
2385typeC
3505typeD
4201count8
5873count8
6385count6
7505count2

혹은 id와 함께 type도 그대로 컬럼으로 유지하고 count만 값으로 내리고 싶을 수도 있다. 이 경우 id_vars인자를 리스트로 전달하면 된다.

1
pd.melt(df, id_vars=['id','type'], value_vars='count')

idtypevariablevalue

     
0201Acount8
1873Bcount8
2385Ccount6
3505Dcount2

마지막으로 melt() 함수를 통해 새롭게 생성된 variable, value 컬럼의 이름을 바꾸고 싶다면, var_name과 value_name 파라미터를 추가해주면 되겠다.

1
2
3
4
pd.melt(df, id_vars='id', 
        value_vars=['type','count'],
        var_name='info_group', value_name='info'
)

idinfo_groupinfo

    
0201typeA
1873typeB
2385typeC
3505typeD
4201count8
5873count8
6385count6
7505count2

각각의 id에 대해 정보를 표시하는 type과 count를 하나의 그룹 info_group으로 묶었고, 그룹에 해당하는 값들을 info로 묶었다.

관성을 이기는 데이터

저작자표시 (새창열림)

This post is licensed under CC BY 4.0 by the author.

파이썬을 활용한 코스피, 달러 환율정보 수집부터 차트 시각화까지

sklearn - RandomForestClassifier

Trending Tags