본문 바로가기
Data Analysis/Spotfire

[TIBCO Spotfire] Transformation

by 불탄오징어 2019. 8. 9.
반응형

 

 

3-4. Transformation


  Tranformation은 원 Data Table에 구조나 Column형식에 직접적으로 수정을 가하는 기능입니다. Column형식을 바꾸는  Change Data types, 구조를 변경시키는 Unpivot, Pivot, Column 명은 변경하거나 Normalization까지 제공하고 있습니다. 해당 기능은 상단 메뉴에서 Insert - Transformation으로 실행할 수 있습니다. 

 

실행화면

 

이와 비슷한 화면(기능)을 다른 곳에서도 볼 수 있는데 File - Add data tables의 하단에 이 옵션이 있습니다.

 

 

하지만 Transformation과 차이점은 Add Data Table은 데이터 테이블을 추가하면서 Transformation을 적용하는 것이고, Transformation은 원테이블에 바로 적용이 되는 점입니다. 기존 테이블은 그대로 두면서 변경을 취할려면 Add Data Table에서 Transformation을 사용하면 됩니다.

 

  옵션으로 제공하는 기능은 다음과 같습니다.

  • Change data types : Column의 Data Type을 변경합니다. 
  • Calculate and replace column : 계산식을 적용한 Column으로 기존 Column을 대체합니다.
  • Calcuated new column : 새로운 Column을 추가합니다. 기존의 Insert - Calculated Column과 동일합니다.
  • Pivot
  • Unpivot
  • Exclude Columns
  • Normalization

 

각 기능 중 주요한 Change data types와 Pivot, Unpivot에 대해서 설명을 진행하겠습니다. 예제 데이터는 아파트매매 실거래가 데이터를 사용했습니다.

아파트(매매)_실거래가_20190704224542.xlsx
8.34MB

 

Change data types

샘플 데이터를 보면 전용면적(m2)이 숫자형이 아닌 String(문자형)으로 선언되어있는 것을 볼 수 있습니다.

 

 

Insert-Transformation을 실행합니다. Change data types를 선택하고 Add를 클릭합니다.

 

 

그러면 아래와 같은 Change Data Types 가 실행됩니다.

 

 

여기서 변경할 "전용면적(m2)"를 선택하고 New data type에서 "Real"을 선택합니다. 그러면 하단의 Preview에서 전용면적의 Data type이 Real로 변경된 것을 확인 할 수 있습니다. OK를 눌러서 적용하고 나옵니다. 그러면 실제 데이터에서 적용된 결과를 확인 할 수 있습니다. 물론 최종 실행전에 Insert Transformation에서 Preview를 눌러서 아래와같이 적용결과를 확인 할 수 있습니다. 

 

 

단 모든 경우에 있어서 Data Type이 변경가능 한 것은 아닙니다. 예를 들어 현재 데이터에는 거래금액이 ","(콤마) 로 구분된 만원단위 금액이며 이는 String(문자형)으로 선언되어있습니다. 아쉽게도 Transformation에서는 저 ","(콤마) 때문에 바로 숫자형으로 변환이 불가능합니다.

 

적용해보면 빈칸으로 뜬다.

 

이 경우에는 Insert - Calculated Column을 사용하여 ","(콤마)를 제거한 후 Data type 변경이 필요합니다.

 

 

스크립트는 아래를 참조해주세요.

 

Integer(Substitute([거래금액(만원)],",","")) * 10000

 

그러면 아래와 같이 변경된 것을 확인 할 수 있습니다.

 

 

 

 

Pivot

Pivot은 특정 기준에 대해서 수치형을 집계를 할 수 있는 기능입니다.  앞서 예제에 이어 단지별 거래금액의 최고가와 평균가를 계산해보겠습니다. Transformation에서 Pivot을 선택하고 Add를 클릭합니다.

 

 

그러면 아래와 같은 Pivot 실행창이 뜹니다.

 

 

아까 만들었던 거래금액을 활용해보려고 하면 아래처럼 목록에서 확인이 되지 않습니다.

 

 

Calculated Column의 경우 실제값을 가지고 있는 게 아니라 연산식만 가지고 있고 이후 데이터가 변경이 되면 저장된 연산식으로 값을 재 산출하는 구조이기 때문에 Pivot을 적용할 수 가 없습니다. 이 경우 해당 Column을 고정 값으로 변경해주면 됩니다. Edit - Column Properties를 실행한후 "거래금액"을 선택하고 우측 하단의 "Freeze Column"을 클릭합니다.

 

 

그러면 아래의 메시지가 뜨고 확인을 누릅니다.

 

 

그러면 Pivot을 실행해서 Column목록을 보면 이상한 문자로 된 것을 볼 수 있습니다. 이는 Spotfire 버그인것 같은 데 해당 칼럼의 GUID가 노출 되는 것 같습니다. 

 

 

칼럼명은 나중에 바꿀 수가 있으니 이대로 진행을 하겠습니다. Row identifier는 집계 기준이 되는 Column을 지정합니다. 여기서는 "단지명"을 선택합니다. 그 후 집계할 값을 Values (%V) and aggregation methods(%M) 에 거래금액의 평균과 최대값을 지정합니다.

 

 

그러면 Sample 에서 확인할 수 있는 바와 같이 단지명을 기준으로 거래금액의 최고가와 평균가를 계산 할 수 있습니다.

 

Unvpivot

샘플 데이터는 아래의 데이터를 사용했습니다.

unpivot.xlsx
0.01MB

데이터를 가져와서 열어보면 다음과 같습니다.

 

 

이를 Unpivot을 활용하여 연령대라는 칼럼을 만들고 객수라는 칼럼을 생성하여 각 값을 부여하겠습니다. Insert - Transformation을 실행합니다.

 

 

Unpivot을 선택하고 Add 버튼을 클릭하면 아래와 같은 창이 뜹니다.

 

 

Columns to pass through에는 "년월"을 나머지 칼럼들은 모두 Columns to tranform에 넣습니다.

 

 

그리고 OK를 눌러 적용하고 다시 OK를 눌러 실행하면 다음과 같은 결과를 얻을 수 있습니다.

 

 

 

가이드 목록으로 

댓글