본문으로 바로가기
반응형


지난 1차 데이터 전처리 시간에 이어서, 데이터 전처리 과정 두번째 포스팅입니다. 지난 시간에는 데이터를 가져와 카페에 해당하는 Row만 추출한 후, 폐업년도와 프랜차이즈 유무 Column을 추가하는 부분까지 진행했었는데요. 오늘은 여기서 조금 더 나아가보도록 하겠습니다!



Profile Table 함수를 사용하면 좀 더 디테일한 Overview가 가능한데요. 함수 결과창에서 전체 Missing값이 4.6%가 존재하는 것을 볼 수 있습니다. 또한, 전체 26112개의 데이터 중에서 폐업일자는 13771개가 존재하는 것으로 보아, 약 절반 가량의 업체가 폐업하였음을 확인할 수 있습니다.


이어서 Select Columns 함수를 사용해, 앞으로 분석에 필요한 Column만 추려낸 후, 'OO시 OO구 OO동 OOO' 형태로 구성된 '소재지 전체주소' Column을 Add function column 함수를 사용하여 구 단위, 동 단위로 분리해주었는데요. 이어서 시각화를 통해 전체적인 데이터를 검토하던 중, 심각한 문제를 발견하게 되었습니다.



Pie Chart로 시각화한 그래프에서, 한 가지 문제가 발견 되는데요. 바로 일부 데이터에 쌍따옴표가 붙어있는 것이었습니다. xlsx, csv, tsv 등 여러 확장자의 Data를 다루다보면 종종 엑셀의 서식 문제, 인코딩 문제 등으로 정상적인 데이터 로드가 안 되는 경우가 있습니다. 저 역시 해당 문제를 엑셀에서 발생한 것으로 추정하고, 해결을 위해 여러 시도를 진행했는데요.


이 문제를 해결하려고 이번 2차 전처리 기간을 거의 대부분 사용하게 된 것 같습니다. 해결한 과정은 다음과 같은데요. 먼저, 제가 사용한 지방행정 인허가 데이터의 경우, CSV 파일을 지원하지 않아, 엑셀 xlsx 확장자로 다운받은 후 변환을 통해 사용하게 되었습니다.


사용 환경은 Mac OS Catalina V.10.15.6 입니다.



하지만 여기서 한 가지 문제가 발생하게 되었는데요. 

Cannot upload data into a file repository 에러가 발생하였고, Detail 창을 통해 에러 코드를 읽어 에러가 발생한 데이터 Row의 데이터를 살펴보고, 잘못된 값이 들어갔는지 확인했지만 이상은 없었습니다. 해당 Row를 아예 제거하고 다시 시도하니, 또 약간 뒤쪽의 행에서 에러가 발생하였고, 결국 이 데이터로 CSV 로드를 하는 것은 어렵다는 결론에 이르렀는데요.



이어서 txt 파일로 로드를 시도하니, 인코딩 문제가 발생합니다. UTF-8로 인코딩 되지 않아 발생한 문제로 추정되는데요. Windows OS의 경우 OS에 내장된 메모장에서 UTF-8 인코딩이 가능하지만, Mac OS의 경우 텍스트 편집기 프로그램을 사용해야 합니다. 



텍스트 편집기에서 환경설정에 들어가준 후 (Command + , )


 

열기 및 저장하기 탭에서 일반 텍스트 파일 인코딩 -> 유니코드(UTF-8)로 지정하고 파일을 저장하게 되면 UTF-8 인코딩 된 문서로 저장이 됩니다. 만약 Brightics에서 올바르게 불러와지지 않는다면, 엑셀 등 

툴에서 txt로 저장할 때, 저장 옵션에서 탭으로 구분한 txt를 설정해주면 되는데요.

하지만 여전히 따옴표가 붙는 문제가 해결되지 않았습니다.



주소 column 중간에 쌍따옴표가 앞뒤로 붙은 주소 문자열이 보이는데요. Brightics Studio에서 앞에 쌍따옴표가 붙은 주소 데이터만 조회해보니, 무려 1000개 가량이 되었습니다. 제거하면 문제가 생길만한 볼륨이었기에, 엑셀에서 제거를 시도했습니다.



해당 Columns을 모두 선택하고, 상단 메뉴에서 데이터-텍스트 나누기를 실행한 후, 위 이미지의 옵션대로 설정하여 텍스트 나누기를 실행하면 쌍따옴표를 제거할 수 있습니다.



조금 전 쌍따옴표가 붙어있던 주소값에서, 쌍따옴표가 제거된 것을 확인할 수 있는데요. 하지만 Brightics에서 새로 Load한 데이터에는 여전히 쌍따옴표가 붙어 있었습니다. 그러던 중, 저는 쌍따옴표가 붙은 데이터를 정렬시켜 관찰하여, 한 가지 특징을 발견할 수 있었습니다.



바로, 쌍따옴표로 묶인 데이터는 모두 데이터 안에 쉼표가 포함되어 있다는 것이었는데요. 그 어느 하나 빠지지 않고, 모두 , 콤마가 들어있는 데이터에만 쌍따옴표가 들어갔습니다. 즉, 쌍따옴표가 제거된 데이터 파일을 가져오더라도 Brightics에 Load하는 과정에서 쌍따옴표가 추가된 것입니다. 따라서, 데이터 Load 이전에 콤마를 제거하여 다시 시도해보기로 했습니다. 엑셀에서 찾기-찾기 및 대치 기능을 사용하여, 데이터에 포함된 쉼표를 모두 제거한 후 다시 Load 하였습니다.



마침내, 주소 데이터에서 쌍따옴표를 모두 제거할 수 있었습니다. 위 Donut Chart에서도 모두 정상적으로 주소가 보이고, 중복이나 이상이 없는 것으로 보이는데요. 이제 앞으로, 몇 가지 Column들을 더 추가하고 조합하여, 본격적인 데이터 분석에 앞선 작업을 마무리 할 예정입니다.



마지막으로추가적인 EDA를 진행했는데요. 동별로 나눈 데이터를 폐업/영업상태별로 시각화한 결과, 다음과 같이 일부 동에서 '영업중' 데이터가 아예 없는 것으로 확인되었습니다. 하지만 수도권 지역이라는 점을 고려하고, 해당 지역에서 웹 검색을 통해 영업중인 카페를 다수 발견할 수 있다는 점을 고려해볼때, 해당 데이터 소스는 생각보다 누락된 데이터가 많다는 것을 알 수 있습니다. 실제 데이터 수도 타 조사 자료와 비교해보았을때, 상당히 작았던 것을 알 수 있구요.


모쪼록, 다음 시간에는 좀 더 진행된 데이터 전처리 과정을 보여드릴 수 있도록 노력하겠습니다. 

읽어주셔서 감사합니다 :)



본 포스팅은 2020년 삼성SDS Brightics 서포터즈 1기 활동의 일환으로 작성된 포스팅입니다.


반응형