Tableau Prep_공공데이터로 서울시 상권데이터 전처리하기

2024. 10. 14. 13:26Tableau

데이터 전처리 목표

서울시 상권데이터와 인구수에 관련된 데이터를 수집 후, 상권의 직장인과 생활인구를 행정동 단위로 파악하기

 

사용데이터_출처(서울시 공공데이터포털)

  • 서울 행정동 정보.csv
  • 상권분석_직장인구.csv
  • 상권분석_생활인구.csv
  • 상권분석_상권영역.csv

 

데이터 소개

상권분석_직장인구

첫번째 데이터 상권분석_직장인구데이터는 총 28개의 필드로 구성된 데이터이며, 10~60대까지의 연령대별 인구수, 10~60대별 성별인구수, 날짜, 상권코드, 상권코드명, 그리고 총 직장인구수를 기록한 데이티이다.

 

행정동 정보

행정동 정보 데이터는 총 2개의 필드로 구성된 데이터이며, 각 행정동의 코드와 행정동명을 기록한 데이터이다.

 

상권분석_상권영역

상권분석_상권영역 데이터는 총11개의 필드로 구성되어있으며, 날짜, 상권코드, 상권 좌표등, 상권의 영역위치가 기록된 데이터이다.

 

상권분석_ 생활인구

상권분석_생활인구데이터는 총533개로 이뤄진 대용량 데이터이다. 날짜, 상권코드, 연령대, 성별+연령대, 시계열데이터 등 구체적인 생활인구 데이터를 기록한 데이터이다.

 

데이터 전처리

1.필요한 데이터 필드 선택하여 정리하기

데이터를 살펴보니, 원하는 목적대로 데이터를 전처리하기 위해서는 일단, 상권분석_생활인구데이터에서 필요한 데이터만 남기고 쓸모없는 데이터는 제외시켜주어야한다. 여기서 필요한 데이터는 목적에 맞게, 상권코드와, 총 생활인구수, 남성생활인구수, 여성생활인구수, 10~60대의 연령대별 인구수까지 총 533개의 필드중 10개의 필드만 선택하고 나머지는 필드 제거를 해준다.

 

그 다음 상권분석_직장인구 수에서도 생활인구수와 같이, 상권코드와 연령대별, 성별인구수만 남기고 데이터 필드를 제거하여 총9개의 필드만 남도록한다.

 

2. 데이터 join하기

상권의 직장인과 생활인구를 행정동 단위로 파악하기위해 일단 각각의 직장인구수와 생활인구가 기록되어있는 데이터끼리 inner join을 진행한 결과이다. 총 1,622개의 행이 join되었으며 20개의 필드가 생성되었다. join된 데이터를 보면 인구수가 join되긴 했지만 하나의 특정 필드안에 쌓이는 long형식이 아니라 wide형식이기때문에 이를 unpivot을 통해 long데이터로 바꿔주는 작업이 필요해보인다.

 

3. 데이터 Pivoting

필드로 나열되어있던 인구수데이터들을 인구_수_타입이라는 하나의 필드안에 값으로 들어가도록 unpivot해주었으며, innerjoin하면서 중복값이었던 상권코드의 필드는 하나를 삭제해주었다. 최종적으로 상권코드별, 인구수 타입과 그에 맞는 인수구가 출력되도록 데이터를 전처리해주었다.

 

4. 데이터 join하여 상권명과함께 데이터 출력하기

하지만 지금은 상권코드만 존재하는 데이터이기때문에 그 상권코드가 어떤 상권을의미하는지는 알 수 없다. 상권코드명과 상권에 대한 정보를 함께 테이블에 추가하기위해 상권분석_상권영역테이블과 pivoting된 테이블을 join해준다. 여기서 pivoting된테이블의값에 해당하는 코드만 join이 되어야하기때문에 innerjoin아닌, leftouter join으로 해주었고, 조인하면서 중복으로 값이 들어간 상권코드는 제거해주었다. 이렇게 하여 총 27,574건의 데이터가 출력되었으며, 제외된 데이터는 28개인것을 알 수 있다. 

 

5. 데이터 join하여 행정동 명과 함께 데이터 출력하기

위의 join된 데이터를 살펴보면 상권코드와 상권명에대한 정보는 join되었지만 행정동에 관련된 정보는 행정동코드만있고 이 코드가 의미하는 바를 알 수 없다. 그렇기때문에 행정동에 관련된 정보를 가지고있는 데이터인 행정동_정보 테이블과 행정동 코드를 join key로 사용하여 join을 실행해야한다.

두 데이터를 행정동_코드로 join을 시켰으나, 각각의 테이블에 있는 행정동코드의 자리수가 달라서 join이 되지 않는걸 확인할 수 있다. 두 테이블이 원활하게 join될 수 있도록 행정동_정보 테이블에 있는 행정동_코드의 자리수를 기존pivoting후 join한 테이블과 맞춰주도록 한다.

 

6. 계산된 필드 만들기

행정동 코드값을 바꾸기  위해서는 계산된 필드를 사용하여야 한다. 왼쪽에서부터 8자리만 가져오는데, 이렇게 추출할때는 문자열이여야하기때문에 str로 한번더 감싸 형변환을시켜주어, 8자리만 가져온 행정동 코드 필드를 새롭게 만들었다.

 

그 후, 문자열이었던 업데이트된 행정동코드를 다시 숫자타입으로 변경하고, 기존에 join됐던것을 지우고 다시 정리된 테이블로 join을 하게되면 이렇게 행정동 코드와 그에맞는 행정동의 정보들이 올바르게 join된것을 확인할 수 있다.

 

7. 데이터 NULL값, 중복값 정리

마지막으로 join된 데이터들중에서 NULL값이나 join하면서 발생했던 중복데이터, 분석에 필요없는 데이터들의 필드를 삭제하여

데이터 전처리를 마무리해준다. NULL값인 형태정보와 F3필드, 그리고 join되면서 중복된 기존 행정동 코드 필드를 제거하여 총 14개의 필드와 약 3만개 정도되는 행을 가진 데이터 테이블이 완성되었다.

 

데이터 출력

데이터 전처리가 끝났다면 원하는 데이터 파일로 출력을 진행한 후, 결과를 확인한다.

 

 

 

데이터 전처리 전체 흐름관계도

서울시 상권데이터 전처리 흐름단계도