목차
2. 빠르다고 해서 엑셀보다 항상 우월한 것은 아니다.
필자는 파이썬과 판다스를 접한 뒤로 엑셀 대신 판다스를 사용하려 하고 있다.
필자가 생각하기에 판다스의 여러 장점들이 있기 때문인데, 그 이유를 여기에 소개한다.
'파이썬? 판다스? 그거 엑셀이랑 똑같은 거 아니야?'라는 질문에 대한 필자 나름대로의 답이다.
1. 엑셀보다 데이터 처리 속도가 빠르다
엑셀은 편리하다. 그러나 느리다.
엑셀은 파일 크기가 불과 몇 메가바이트만 되어도 처리 속도가 느려지는 것이 체감이 된다.
엑셀로 단순한 서식 관리 정도만 하는 경우라면 느껴본 적이 없겠지만, 데이터가 조금만 많아져도 엑셀 때문에 답답함을 느껴본 사람들이 많을 것이다.
예를 들어 보자. 공공데이터포털에서 국민연금 가입 사업장 내역을 다운로드 받아보자.
용량이 약 100메가인 CSV 파일이다.
크다면 크고 작다면 작은 파일인데, 파일 용량이 이 정도 되면 엑셀에서는 일단 파일을 여는 것부터가 쉽지 않다.
몇 초나 걸리는지 한번 열어보자.
파일을 여는 데만 거의 40초가 걸린다.
이번에는 "당월고지금액"을 기준으로 데이터를 정렬해보자.
필터 버튼을 누르고 데이터가 정렬되는 데까지 10초 이상이 걸렸고, 데이터 정렬을 실행하고 완료되는 데까지 걸린 시간만 따지더라도 5초 정도가 걸렸다.
여기에서는 원시데이터 상태 그대로 정렬을 해서 비교적 빠르게 되었지만, 경험해 본 사람이라면 알 것이다.
열몇 개 추가해서 함수 몇 개만 넣고 나면 필터 한 번만 하려고 해도 오른쪽 하단에서 영원히 끝나지 않는 progress bar를 만나게 된다.
이번에는 같은 작업을 판다스로 해보자.
먼저 엑셀로 열 때와 동일하게 전체 데이터를 불러오는 조건으로 해보니,
파일을 로드하는 데 6.2초, 당월고지금액 기준으로 정렬하는 데 0.6초가 걸렸다.
그런데 엑셀에서는 그럴 수 없지만, 판다스에서는 내가 필요한 열만 불러오는 등 여러 가지 옵션을 추가할 수가 있다.
전체 열 중에 6개만 골라서 불러오는 조건으로 해보니,
파일을 로드하는 데 3.8초, 당월고지금액 기준으로 정렬하는 데 0.3초가 걸렸다.
10배 정도 빠르다면 갈아탈 만하지 않은가?
2. 빠르다고 해서 엑셀보다 항상 우월한 것은 아니다
필자가 엑셀 대신 판다스에 익숙해져야겠다고 맨 처음 생각하게 된 계기는 위에 설명한 처리속도 때문이었다. 엑셀의 느린 속도 때문에 자료 처리가 거의 불가능했던 경험을 해봤었기 때문이다.
그런데, 필자와 같은 생각을 가지고 판다스를 사용해보려는 사람들은 이런 의문을 품는 순간이 올 것이다.
'아... 엑셀이 사용하기도 편리하고 익숙한데 이거 새로 배우고 코드 짜는 시간에 그냥 엑셀 쓰고 말지.'
필자도 그런 생각을 했었다. 버튼 하나만 누르면 웬만한 작업은 다 알아서 해 주는 엑셀과 달리 판다스는 코드를 직접 손으로 다 쳐야 하고, 익숙해지기 전에는 너무 복잡하고 오류도 많이 마주치게 되어 어떤 때는 엑셀로 하는 것보다 결과적으로 시간이 더 걸리기도 하기 때문에, 이 길이 맞는지 의구심을 갖지 않을 수 없다.
그리고, 그 생각이 맞다. 필자도 판다스로 엑셀을 완전히 대체하려는 생각은 틀렸다고 생각한다.
3. 판다스를 써야 하는 다른 이유는?
그렇다면 언제 엑셀 대신 판다스를 쓰는 것이 나을까?
이 질문에 대한 필자의 답은 두 가지이다.
첫째, 반복적인 분석 작업을 프로그램화할 수 있다.
판다스를 사용하기 위해 코드를 쓰는 작업은 분명히 엑셀을 사용하는 것보다 어렵다. 클릭 한번 하는 것보다는 판다스의 문법에 맞게 코드를 쓰는 것이 더 오래 걸린다.
그러나 코드는 한번 써 놓으면 언제든지 재사용할 수가 있다.
회사원이든 연구원이든 데이터를 다루는 사람이라면 어느 정도 반복적이고 정형화된 작업을 하고 있을 것이다.
그런 작업이라면 분명히 엑셀보다는 판다스를 쓰는 편이 낫다.
예를 들어, 정기적으로 대규모의 설문 조사를 하고 그 결과를 분석하는 작업을 하는 사람이 엑셀을 사용한다면 매번 엑셀 시트에서 똑같은 분석 작업을 반복해야겠지만, 판다스를 사용한다면 스크립트를 한번 짜놓고 나면 그다음에는 데이터만 집어넣으면 되니 훨씬 편리할 것이다.
만일 반복적이지 않은 작업이고, 엑셀로도 가능한 작업이라면, 판다스를 연습하려는 목적이 있지 않은 이상 그냥 엑셀을 쓰는 편이 낫다고 본다.
둘째, 분석의 최종 결과뿐만 아니라 그 과정과 중간 결과물도 확인할 수 있다.
데이터를 분석하다 보면 구체적으로 확정된 목표를 가지고 출발하는 경우도 있지만, 일단 이렇게도 보았다가 저렇게도 보는 탐색 과정을 거치는 경우가 많다.
A를 기준으로 필터하고, 소팅하고, 통계치를 뽑아보았다가, B를 기준으로도 해보고, 여러 기준을 동시에 적용해보기도 하는 등의 과정을 거치게 된다. 적어도 필자는 그렇다.
그런데 그렇게 데이터를 훑어보는 과정에서는 중요치 않다고 생각하고 넘어갔다가, 나중에 다시 그와 같은 기준으로 데이터를 다시 뽑아서 보고 싶을 때가 있다.
엑셀을 사용한다면 그 결과를 다시 보기 위해서 다시금 분석 작업을 거쳐야만 한다. 어떤 때는 내가 어떻게 그런 결과를 뽑아 보았는지 기억도 안 날 때가 있다.
그러나 판다스를 사용한다면 분석의 과정이 코드로 모두 기록되고, 언제든지 그 단계로 돌아가 중간 결과물을 다시 보고, 필요하다면 거기에서부터 다시 분석을 시도할 수도 있다.
이는 분명한 차이점이자, 큰 장점이라고 본다.
어떤 분석 결과에 대해서 그 분석의 단계를 확인하는 사람은, 미래의 본인이 될 수도 있고, 타인이 될 수도 있다.
'코딩 > 데이터분석(Pandas, ML, etc)' 카테고리의 다른 글
판다스(Pandas)에서 엑셀, CSV 파일의 일부만 불러오기, 데이터타입과 포맷 지정하기 (0) | 2021.12.16 |
---|---|
판다스, 데이터 분석 책 추천/파이썬으로 데이터 주무르기 (0) | 2021.12.08 |
파이썬을 이용한 데이터 분석 예제/코로나19 확진자 통계는 정말 조작되고 있을까?(판다스, 벤포드 법칙) (0) | 2021.11.27 |
판다스(Pandas)에서 엑셀, CSV 파일 불러오기 기초 (0) | 2021.11.20 |
판다스(Pandas) 교재 추천, 책 추천/파이썬 라이브러리를 활용한 데이터 분석 (0) | 2021.11.20 |
댓글