테이블의 컬럼들을 한 컬럼으로 내리고 값을 따로 빼는 것을 melt(melting)라고 합니다.그 반대로 값을 컬럼으로 올리는 작업을 cast (casting)라고 합니다.
이런 것을 엑셀이나 DB에서는 pivot(pivoting 추축) 이라고도 하고 또 transform이라고도 말합니다.
R과 python에서 melt하는 간단한 코드 스니펫을 올립니다. Google에 검색을 하면 다 나오는 것이지만 순전히 제 편의를 위해서 올려둡니다.
R은 특히 ggplot2를 사용할 때 facet을 쓰려면 melt된 상태여야 하는 것이 있어서 연습이 필요합니다만 늘 까먹습니다. (전 바보인가봐요)
R코드입니다.
다른 방법도 많지만 R은 reshape2 패키지를 쓰는 것이 편합니다.
# install.packages("reshape2") library(reshape2) # 해들리 만세 iris # 이렇게 생겼어요 iris.molten <- melt(iris, id.vars=c("Species")) # Species 는 놔두고 모두 멜트 iris.molten # melt한 data.frame
python코드입니다.
python은 당연히 Pandas에 melt 함수가 있습니다.
from sklearn import datasets # iris data 때문에 로딩했어요 import pandas as pd # 팬더스 import numpy as np # 데이터 변환을 하는데 numpy가 필요할 뿐이었어요 iris = datasets.load_iris() # 예제를 위해서 iris가 필요할 뿐 print(iris) # 이렇게 생겼는데 iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names) # 일단 iris가 dataframe이 아니어서 바꿈 print(pd.melt(iris_df)) # 이렇게 바뀝니다