728x90
오늘은 sas의 proc transpose와 유사하게
파이썬에서 stack / melt를 사용해서 동일한 효과를 내는 방법을 배워보려고합니다.
1. Stack 사용하기
보통 data를 Transpose하는 것으로는 pivot이나, melt를 쓰지만
set_index과 stack으로도 간단하게 transpose할 수 있어요.
아래와 같이 간단한 데이터가 있다고 볼게요.
[원본데이터]
목표는 컬럼에 있는 v1-v4까지의 값들이 컬럼으로 들어가고 그에 해당하는 값들이 한 컬럼으로 들어가는 것입니다.
id1=a인 값으로 예를 들어볼게요.
아래와 같이 id1=a인 값에서, 각 v1-v4가 하나의 컬럼, 그에 해당하는 값도 하나의 컬럼으로 들어가는 거죠.
[output으로 만들고 싶은 데이터 형태]
간단하게 위의 한줄이면 transpose할 수 있습니다.
코드를 쪼개서 확인해보면, 우선 id1, id2로 index를 설정해주고
아래와 같이 행과열을 바꿔 준 다음,
id2로 stack을 해주면 됩니다.
2. melt 사용하기
melt는 SAS의 proc transpose와 유사하다고 생각하시면 됩니다.
1
|
stack2=stack[stack['id1']=='a'].melt(id_vars = ['id1','id2'], var_name='v_code', value_name='value')
|
cs |
아까 stack보다는 조금더 직관적이고 이해가 쉬울거같아요!
stack한뒤 rename을 따로 해주지 않아도, 코드 한줄이면 끝나게 되어 melt를 추천합니다.
728x90
'IT > 파이썬' 카테고리의 다른 글
GridSearchCV 2탄 (for문 활용) (0) | 2021.02.18 |
---|---|
[그래프] pivot_table을 활용한 heatmap 그래프 그리기 (0) | 2021.02.09 |
[그래프] Bar 그래프 그리기 (0) | 2021.02.02 |
[그래프] box-plot 그리기 (0) | 2021.01.27 |
if문과 map함수로 파생변수 만들기 (0) | 2021.01.25 |