아래로 내려져있는 (row로 쌓여있는) 데이터를 컬럼으로 만들 필요가 있을 경우 pandas pivot() 을 활용하여 손쉽게 transpose 할 수 있습니다. (oracle 등 쿼리로 pivot / unpivot 하려면 ㅠ,.ㅜ)
반대로, 컬럼명을 포함해 옆으로 (컬럼으로) 놓여져있는 데이터를 행으로 만들 필요가 있을 경우에는 pandas의 stack() 함수를 통해 가능했습니다.
>>> df_single_level_cols = pd.DataFrame([[0, 1], [2, 3]],
index=['cat', 'dog'],
columns=['weight', 'height'])
>>> df_single_level_cols
weight height
cat 0 1
dog 2 3
>>> df_single_level_cols.stack()
cat weight 0
height 1
dog weight 2
height 3
dtype: int64
- index 컬럼명을 지정하지 않으면 아래로 쌓을 기준이 없이 모든 컬럼이 같은 컬럼으로 row로 쌓여서 의도치 않은 형식이 되어버릴 수 있음
- set_index('컬럼명') 통해 stack 처리시 기준이 될 컬럼 지정
df.set_index('컬럼명').stack()
- stack() 메소드는 리턴값이 series 타입이므로 별도로 DataFrame으로 변환 필요
pd.DataFrame(df.set_index(‘컬럼명’).stack())
'학습장 > Data Engineering' 카테고리의 다른 글
spark 실행구조 (0) | 2022.10.31 |
---|---|
[spark] RDD란? (2) | 2022.10.24 |
Vertica 특징 (4) | 2022.09.29 |
python sqllineage 라이브러리 (6) | 2022.08.29 |
ERROR s2v.S2V: ERROR: S2V.save(): did not pass the Vertica requirements pre-check. (0) | 2021.07.14 |
댓글