본문 바로가기

책읽기

[어쩌다 데이터 분석](김유지 著, 2022)

● 2017년, MNIST

- 2017년, 어쩌다가 우리 팀에 새로 생긴 인공지능 파트의 파트장이 되어 머신 러닝에 발을 디뎠다.

- 파트원들에게 물어가며, 윗 분들의 적절한 보호를 받아가며, 때로는 의도적으로 거친 물살에 던져지는 조각배의 선장.

- 낮에는 회의를 다니고 밤에는 만삭의 아내를 재우고 인터넷을 뒤지며 독학을 하던 날들이었다.

- C언어, Matlab, 파이썬을 배울 때의 첫 관문은 "Hello, World!"라는 문장을 출력하는 것이었는데 텐서플로는 좀 달랐다.

- 너무나 당연하지만 데이터를 입력해 학습을 시켜야 하니 작은 신경망을 꾸미고 데이터를 넣는 것이 첫 관문이었다.

- 존재는 알고 있었지만 굳이? 라는 생각에 외면해오던 pandas와의 첫 대면이었다.

 

● pandas vs numpy

- 2008년에 파이썬을 시작했으니 시기로 치면 제법 오래됐지만 pandas는 사용하지 않고 있었다.

- 파이썬에서 쓰는 엑셀 정도로 이야기를 듣기는 했지만 당시 내가 짜던 코드를 기준으로 numpy에서 모두 처리가 가능했기 때문에 아쉽지가 않던 것이 가장 큰 이유.

- 우리 파트의 똘똘한 선임이 pandas는 R을 어설프게 베낀 것이라고 해준 설명에 내 시선부터가 삐딱했고

- "pandas 없이 어떻게 코딩해요? 전 못할 것 같은데 ㅎ"라는 분도 있었으나 2차원 리스트 처리를 벗어나지 않던 당시의 내 사고 범위로는 "없어도 되는데? 저 분은 코딩을 너무 쉽게 배우기 시작하셨나"라는 생각마저 들었다.

- 결론적으로 나의 경험 부족에서 온 오판이었다. 데이터 분석을 일반 코딩 정도로 생각하고 있었던 게 문제였다.

- 데이터를 다양한 관점에서 돌려보며 취합과 인자간 연산을 여러 가지로 반복해야 하며, 특정 조건에 부합하는 것들만 추출을 해야 했다.

- 그리고 이런 일은 pandas 없이 매우 어려운 게 맞다.

- 수치해석 라이브러리 numpy만 써서도 가능은 하지만 굳이 스스로의 업무 난이도를 높이는 일일 뿐이다.

 

● pandas vs 엑셀

- pandas는 엑셀로 할 수 있는 일을 모두 할 수 있다.

- 일반 가정에서 가계부를 쓰는 것처럼 데이터를 읽고 부분합 등을 구하는 일부터

- 여러 엑셀 시트에서 서로 관계된 부분을 찾아 데이터를 치환하거나 합치는 일,

- 불러온 데이터에 특정 함수를 적용해 새로운 시각에서 데이터를 바라보는 일,

- 그리고 데이터를 그 자리에서 그림으로 표현하는 일까지 엑셀과 동일하게 가능하다.

- 엑셀과 구분되는 가장 큰 차이는 마우스 클릭이 아니라 키보드 입력을 사용한다는 점.

- 단순 업무를 매우 효과적으로 반복할 수 있다는 장점이 됨과 동시에 내가 내린 명령의 결과가 즉시 화면에 보이지 않는다는 단점이 된다.

- 주피터 노트북 환경이라면 코드 한 줄을 추가해 즉시 화면에 띄워볼 수 있지만 이 역시 엑셀보다 성가시다.

- .py 파일이라면 문제가 조금 더 심각해서 머리 속으로 상상하며 진행해야 한다.

- 데이터 분석이 노트북 환경에서 주로 진행이 되는 이유이자 여러 커뮤니티에서 초심자들이 "이거 어떻게 해요?"하는 질문 중 적잖은 비중을 차지한다.

 

● 엑셀 사용자가 pandas에 익숙해지려면 연습이 필요하다.

- 셀을 긁어 선택하던 방식을 명령어를 사용하는 거으로 바꾸는 것도 시행착오가 필요하고 - 인덱스가 비어있거나 중복된 경우가 낯설다

- 일부 열을 삭제하거나 새 열을 추가하는 과정이 클릭보다 덜 직관적이다.

- 데이터가 비어있는 결측값은 황당한 오류의 원인이 되기 때문에 채우는 방법도 배워야 하고

- 통계적인 방법으로 이상값을 찾아 처리하는 방법은 quantile이니 IQR이니 하는 개념부터 익혀야 한다.

- 여기에 문자열을 다루는 정규 표현식, 시간 데이터 형식인 datatime이 가세하면 일단 창을 닫고 쉬고 싶어진다.

- 구글링으로 하나 하나 해결하기에는 유달리 여러 문제가 동시에 날아온다.

- pandas의 알맹이는 numpy array이기 때문에 numpy에 대한 지식은 기본으로 깔고 가야 한다.

 

● pandas는 날을 잡고 한 번쯤 마스터할 필요가 있다.

- 하루 이틀, 길어야 며칠 집중하는 것을 마스터한다고 하기엔 어폐가 있지만 다른 일 없이 pandas만 붙잡고 쭉 나갈 필요가 있다.

- 인덱스 컨트롤, 일부 행이나 열 선택, 결측값과 이상값 처리 등을 띄엄띄엄 배우면 헷갈릴 여지가 많기 때문이다.

- pivot table, merge 등 테이블을 다루는 기술은 집중해서 기본기를 익숙하게 한 뒤에 필요할 때마다 하나씩, 그러나 확실하게 익히는 편이 좋다.

- 개인적으로 groupby와 pivot_table을 이상하게 많이 헷갈렸던 기억이 난다.

- apply는 한 번 제대로 익혀서 계속 잘 쓰고 있는데도 남의 코드를 보면 내가 모르는 신기한 기술이 종종 보인다.

- pandas에 갖춰진 편의 기능은 생각보다 많고 다양하다.

- 이런 기능의 존재를 아는 사람과 모르는 사람이 정리하는 데이터는 속도와 결과물의 질이 달라질 수밖에 없다.

 

● 파이썬 기본부터 pandas 기능까지

- 파이썬으로 데이터 분석을 업으로 삼겠다는 사람이라면 pandas 없이 살 수 없는 것이 정상이다.

- 바꿔 말하면, pandas를 잘 모르는 사람은 파이썬 기본 문법도 익숙하지 않을 확률이 높다. 

- 수치해석 등에만 파이썬을 오래 쓰던 사람이 pandas에 손을 뻗었을 때 정도가 예외가 될 것이다.

- 이 책은 파이썬 설치부터 기본 문법을 거쳐 비로소 pandas에 인도한다.

- 파이썬에 익숙한 독자라면 건너뛰어도 되지만 그렇지 않다면 다행이라는 생각이 들 수도 있다.

- 데이터 분석에만 집중하는 강의들이 파이썬 기초 명령을 생략하는 경우가 있는데 초보자들에게는 너무나 어렵게 느껴지기 때문이다.

- UX 관련 전공자인 저자가 제목을 "어쩌다 데이터 분석"이라고 지은 이유는 본인처럼 어쩌다 데이터 분석의 길에 들어선 이들에게 길잡이가 되고 싶기 때문이었을 것이다.

- 저자의 의도가 충분히 전달되기를 바라며, 휴일 등을 이용해 집중해서 저자의 내공을 흡수하길 바란다.

- 시간을 끌면 더 헷갈리는 게 pandas다.

 

※ 한빛미디어 2022 도서 서평단 "나는 리뷰어다"의 일원으로 도서를 제공받아 작성한 리뷰입니다.