앞선 data table 내의 변환에서 대부분은 column 또는 row 관련된 변환입니다. 하지만 이번에 다룰 pivot과 unpivot은 하나의 data table 재구성하는 일입니다. pivot은 data table 내의 가지고 있던 정보들을 토대로 일부만을 집계하는 재구성 방법이고, unpivot은 정보를 합치는 재구성 방법입니다. 이름에서 알 수 있게 pivot과 unpivot은 정반대되는 개념이며, 앞서 spotfire와 excel을 비교할 때 그리고 cross table을 소개할 때도 언급 되었습니다.
위치 : Data canvas - data transform - pivot/unpivot
pivot과 unpivot 실행
pivot
엄밀히 말하자면 pivot은 집계 변환이자 차원 확장이자 하위 계층으로 분류하는 변환입니다. pivot 설정에 따라 다르겠지만, row가 많은 표에서, column 하나를 column 방향으로 폈다고 상상하시면 좋을 것 같습니다.
pivot의 구성요소는 아래와 같습니다.
row identifiers : 집계 기준입니다. row identifier로 선택된 column들을 기준으로 집계를 합니다.
column titles : 상세하게 분류하는 집계 기준입니다. column title은 column의 값 별로 상세하게 집계를 합니다.
values and aggregation method : 보여줄 값 column과 집계함수입니다. 해당 row identifier, 해당 column title의 column 값에 value column의 값이 aggregation method로 집계됩니다.
transfer columns : pivot의 구성요소로 선택한 이외의 column들 중 표시할 값들입니다.
pivot 원리
unpivot
unpivot은 여러 값들을 하나의 기준으로 묶어줍니다. pivot과 반대로 column이 많은 표에서, 여러 column들을 합쳐서 row 방향으로 길게 늘어 놓았다고 상상하시면 좋습니다. unpivot의 구성요소는 아래와 같습니다.
column to pass though : 그대로 둘 column 입니다.
columns to transform : 2개의 column으로 합칠 column들 입니다. column name들로 category column을 생성하며 column의 value들로 value column을 생성합니다. 몇개의 column을 합치든 최종적으로 2개의 column으로 변환됩니다.
unpivot 원리
pivot과 unpivot 변환
pivot과 unpivot은 반대 변환이라고 말씀드렸고, 실제로 pivot과 unpivot을 한 번씩 진행한 결과를 통해 실제로 반대 변환임을 확인해 보겠습니다.
pivot과 unpivot
pivot과 unpivot 진행 후 data table이 다시 원래 상태로 돌아온 것을 확인할 수 있습니다. 변환 후에도 3가지 column으로 표현되며, 각 column의 구성 value들은 동일합니다. 하지만, pivot과 unpivot 진행 시 나오는 결과는 정확히 일치하지 않습니다. 이것은 pivot 과정에서 집계함수를 사용하여 데이터가 축약되기 때문이고 이후 unpivot를 사용하더라도 삭제된 정보는 복구되지 않습니다. 또한 결과의 column2, column3의 이름 정보는 없어지게 됩니다.
0 댓글