파이썬으로 데이터 분석하기
파이썬을 공부한 지 약 6개월이 넘은 것 같은 데 처음 시작할 때만 해도 파이썬이 데이터 분석에 많이 사용된다고 해서 무작정 공부를 시작했다. 파이썬 기초 문법을 배우고 캐글 타이타닉 프로젝트에 남의 노트북을 살짝 수정해 제출도 해보고 처음으로 LTV 예측 프로젝트를 스스로 한 번 해보기까지 우여곡절(?)도 많았지만 지금 와서는 또 언제 그랬냐는 듯 새로운 목표를 세워 다시 나아가고 있다.
짧지만 지금까지 파이썬 공부를 하면서 왜 파이썬이 데이터 분석에 많이 사용되는 지 나름대로 이유를 정리해 보고자한다. 마케터 혹은 비전공자로서 트래킹 툴이나 엑셀 이외 파이썬을 이용한 데이터 분석을 공부하고자 분들에게 도움이 되었으면 한다.
프로그래밍 언어 가운데 사람이 사용하는 언어에 가까운 언어를 하이레벨 언어라고 하고, 이진법 기반으로 컴퓨터에 의해 읽고 실행되기 쉬운 언어를 로우레벨 언어라고 한다고 한다. C언어나 파이썬은 대표적인 하이레벨 언어이다.
하이레벨 언어 가운데서도 코딩을 배워본 적이 없는 사람이 가장 거부감 없이 접근할 수 있는 언어가 파이썬이 아닐까 생각한다. 나는 지금까지 웹사이트를 수정하기 위해 HTML이나 CSS를 공부한 적이 있는데 난이도가 비슷하고 파이썬이 코드 들여쓰기(Indentation)를 지원해 좀 더 깔끔하다는 생각이 든다.
나중에 배우겠지만 파이썬은 함수나 조건문을 선언하면 자동으로 코드가 들여쓰기가 된다. 반면, 다른 언어들은 {}나 <>와 같은 괄호로 코드 블록의 시작과 끝을 알려야 하고 사용자가 임의로 띄어쓰기를 하지 않는 한 코드가 다닥다닥 붙어 읽기가 힘들어 진다.
또한, 다른 프로그래밍 언어를 배워본 적이 있는 사람이라면 금방 알 수 있다고 하는데 파이썬은 다른 언어들과 달리 변수를 디클레어(선언)할 필요도 없고, 변수에 오는 값을 입력할 때 데이터 타입을 미리 지정해야 하는 것도 없다.
무엇보다 파이썬은 파이썬에 대한 기초 지식이 없어도 무슨 말인지 어느 정도 이해할 만큼 코드가 사람의 언어에 가깝게 작성되어 있다고 한다. 아래 코드 블록을 한번 읽어보자!
Python reads like English.
(출처 https://www.kaggle.com/colinmorris/hello-python)
그렇다. 처음에 스팸이 0개 있었는데 스팸개수를 프린트(출력)하라고 한다. #는 컴퓨터가 아닌 사람을 위한 부연 설명이다. 다음에 스팸 개수에 4개를 더했고, 만약 스팸 개수가 0보다 크면 “But I don’t want ANY spam!”이라는 메시지를 출력하라고 한다. 어떤가? 생각보다 일단 쉽지 않은가?
파이썬은 데이터 분석 외에도 시스템 유틸리티나 웹사이트 개발, 사물 인터넷 프로그래밍에도 사용된다고 하는데 같은 파이썬이여도 용도에 따라 서로 다른 수준의 지식을 요구하고 주로 사용하는 라이브러리도 다른 것 같다. 즉, 데이터 분석을 위해 파이썬을 배우는 사람들은 프로그래밍 입문 수준의 코딩 지식과 데이터 분석을 위한 파이썬 라이브러리에 대한 학습이 필요하다고 할 수 있다.
그렇다면 굳이 엑셀이 있는데 파이썬을 배울 필요가 있을까? 일반적인 수준의 데이터 분석이라면 엑셀로 충분할 수 있다. 하지만 웹사이트의 방문 로그처럼 지속적으로 발생하는 대량의 데이터를 분석하거나 웹에서 크롤링해오는 데이터를 반복적으로 분석해야 한다면 파이썬을 사용하는 게 나을 것이다.
파이썬도 기본적으로 엑셀과 비슷한 수식 계산과 함수, 그래프 등 시각화를 지원한다. 하지만 엑셀의 경우 대용량 파일 처리에 시간이 많이 걸리고 데이터 분석만 되고 향후 예측까지는 활용이 어렵다. 이에 반해 파이썬은 대량의 데이터를 빠르고 처리할 수 있고 반복되는 부분은 프로그래밍 처리가 가능하며 머신러닝, 딥러닝 관련 다양한 분석 및 예측 라이브러리를 사용할 수 있다.
또한, 데이터 호환성도 뛰어나 엑셀을 CSV 파일 형태로 불러와 파이썬에서 분석할 수도 있고, 파이썬에서 작성한 데이터를 다시 CSV 파일 형태로 공유할 수도 있다.
마지막으로 파이썬은 다양한 라이브러리를 지원한다. 나는 이것이 데이터 분석에 있어 파이썬의 최대 장점이라고 생각한다. 기초 문법을 처음에 배울 때는 좀 어렵고 지루할 수 있으나 일단 배우고 나면 파이썬에서 지원하는 라이브러리는 어마어마한 것 같다.
청소기를 샀는데 방이든 차든 장소에 맞춰서 다양한 도구를 갈아끼면서 여러 곳에 사용할 수 있는 느낌? 아니면 에어프라이기를 샀는데 이건 머 튀김 뿐만 아니라 제빵, 치킨, 생선구이 등 거의 모든 음식에 사용할 수 있어서 감동? 머 이런 느낌이라고 해야 할까??
파이썬은 분류든 회귀든 머신러닝과 관련한 대부분의 알고리즘을 지원해서 그냥 해당 라이브러리를 불러와적용해서 실행하면 알아서 결과를 계산해 준다. 물론 정확도를 높이기 위해서 해당 알고리즘을 이해하고 파라미터 등을 튜닝하는 작업은 별도의 문제이다. 또한, 요즘 핫한 딥러닝 관련해서도 파이토치나 텐서플로우 등 파이썬이 지원하는 라이브러리가 가장 많다고 한다.
파이썬에서 동작하는 대표적인 파이썬 라이브러리를 소개하면 다음과 같다.
Pandas (판다스) : 데이터를 엑셀과 같은 표의 형태로 작성하고 기초통계 및 계산, 시각화 등을 지원
Seaborn (씨본): 다양한 색상 테마와 통계용 차트를 지원하는 시각화 라이브러리, 2차원 뿐만 아니라 3차원 데이터의 시각화도 가능
Scikit-learn (사이킷런): 분류, 회귀, 클러스터링, 차원 축소 등 다양한 머신러닝 모델링을 지원
TensorFlow (텐서플로): 구글에서 제공하는 딥러닝 개발을 위한 라이브러리
Mysqlclient (마이에스큐엘 클라이언트) : MySQL DB에 연결하고 쿼리를 실행할 수 있는 라이브러리
(출처 https://www.kaggle.com/joshuajhchoi/101-pandas-tips-for-beginners-titanic-en-kr)
파이썬 외에도 데이터 분석에 많이 사용되는 언어로 R이 있다. 파이썬이 다양한 분야에 다양하게 활용되는 언어라면 R은 통계학자들이 만든 언어로 데이터 분석과 시각화에 초점이 맞춰진 언어라고 한다. R 역시 다양한 라이브러리가 지원된다고 하는데 어떤 언어가 처음에 더 맞는 지는 사람마다 다를 수 있다. 중요한 것은 자신에게 맞는 언어를 택해서 공부해 나가고 데이터 분석에 대한 감을 키워 나가는 것이니까.
다음 글부터는 파이썬으로 데이터 분석하기를 목표로 파이썬 문법을 하나씩 차근차근 정리해 보려고 한다. 파이썬 기본 문법과 데이터 분석 라이브러리를 한 번 훑고 경험하고 싶으신 분들은 함께 공부해 나가면 좋을 것 같다.
* 새로운 책 출간 소식
파이썬으로 데이터 분석하는 데 관심을 가지셨다면 제가 출간한 '챗GPT로 마케팅 데이터 분석하기'도 한 번 살펴보세요! 파이썬과 챗GPT를 활용해 고객 리뷰 감정 분석, 매출 예측, 고객 세그멘테이션 등 다양한 실습 예제를 다룹니다. 실제 비즈니스 데이터를 챗GPT의 도움을 받아 분석하면서 파이썬 공부를 시작하는 데 좋은 출발점이 될 것이라 생각합니다!
https://product.kyobobook.co.kr/detail/S000214577163