이번 글에서는 앞에 다룬 내용을 베이스로 하는 예제 문제들을 다룰 것입니다. 글로만 이해해서는 완벽하게 익히기 어렵습니다. 정확히는 본인이 무엇을 모르는지 모르는 경우가 대부분입니다. 대부분의 공부가 그렇듯이 실제로 데이터를 다루면서 습득하는 것이 빠르고 정확한 방법이라고 생각합니다.
문제 난이도가 그렇게 쉽지는 않습니다. 왜냐하면 데이터를 전처리하는 과정은 생각보다 까다롭기 때문입니다. 적용함수를 통해서 예외가 되는 값들을 다 처리하려고 하면 이상한 데이터 몇몇 때문에 오류출력이 되는 경우가 태반입니다. 그래도 다행인것은 예제로 다루는 파일은 현장에서 구하는 데이터들보다는 깔끔하게 정리가 되어있는 편입니다. 원본 데이터(raw data)에 익숙해지면서 이런 형식의 데이터를 어떻게 해야 분석하기 편하게 바꿀 수 있는 지 고민해보는 좋은 문제가 되기를 바랍니다.
문제 1 (총 10개)
다음 내용을 담은 데이터 프레임 생성 후 아래 문제들을 순서대로 풀어보시오. 데이터 프레임의 이름은 data1로 하시오.
데이터 프레임 생성
1) mango의 price와 qty 선택
정답
2) mango와 cherry 의 price 선택
정답
3) 전체 과일의 price만 선택 (조건 색인)
정답
4) qty의 평균 구하기
정답
전처리 시 평균을 구할 때 NaN는 보통 무시합니다. 그래서 1명의 NaN를 포함한 4명의 평균을 구할 때 4로 나눌지 3으로 나눌지에 따라서 사용하는 코드가 달라집니다.
5) price가 1000 이상인 과일 이름 출력
정답
6) cherry, banana, mango, apple 순 출력
정답
7) 행 qty의 행이름을 QTY로 수정
정답
8) name에 ‘a’를 포함하는 행 출력 (난이도 중)
정답
9) name값을 행 이름(인덱스 이름)으로 설정 후 name 컬럼 제외
정답
10) apple과 cherry 행 삭제
정답
문제 2. 파일 불러온 후 전처리
아래 subway2.csv 파일을 받아서 기본 디렉토리에 넣고 python으로 불러오시오.
이 부분까지 교육을 받고서 문제를 풀었던 기억이 아직도 생생합니다. 직접 엑셀 파일을 살펴보고, 문제를 어떻게 이해해야 할지, 오류가 발생하면 왜 발생하는지 찾아보고 … 수 차례 복습하면서 전처리를 하는 과정은 익숙해졌지만 새로운 데이터를 살펴볼 때마다 새로운 문제에 직면하는 것은 저만의 일이 아니라고 생각합니다. 현업에서는 각 나라별로 사용하는 날짜 형식의 차이로 인해 파일 자체가 쓰레기가 되는 경우도 있다고 합니다. 열 하나에 여러 포맷이 섞여버리면 컴퓨터에 익숙하고를 떠나서 분류 자체가 어려우니까요.
문제를 하나하나 풀면서 동시에 풀이를 옮기는 작업을 진행하였습니다. 오랜만에 문제를 풀어보면서 과거의 풀이와 비교하는 것도 재밌었습니다. 다 풀어보신 분들은 아시겠지만 데이터 전처리는 노가다의 연속이라는 것을 알 수 있습니다. 데이터 수집에 대한 메뉴얼이 없는 곳에서는 매번 코드를 만들어야 할 것 같다는 느낌이 듭니다. 필요한 변수가 없으면 외부 데이터를 가져오거나 기존 데이터를 이용해서 새로운 변수를 만들고, 배운대로 코드를 짜봤지만 오류가 발생하는 경우도 많고. 분석 모델에 넣는 과정은 아직 시작도 안했는데 험난하기만 합니다.
사실 분석 모델에 잘 정리된 데이터를 넣는 것은 굉장히 간단합니다. 구글링을 하면 분석 모델별로 어떻게 코드를 입력해야하는지 다 나와있기 때문에 분석가의 시간을 가장 많이 잡아먹는 과정은 모델 분석 이전까지의 과정입니다.
다음 글에서는 전처리에 필요한 추가적인 내용을 알아보도록 하겠습니다. R의 reshape2 패키지처럼 long data와 wide data를 다루는 함수, 그룹 함수, 구간 분할 등 … 이후에 시각화 과정, 분석 모델을 사용하는 법까지 나갈 예정입니다.