Pandas 꽤 잘 활용하기, pandas in action
파이썬으로 데이터 분석한다면 한번 쯤은
이번 글은 Pandas in Action이라는 책의 리뷰로,
한빛미디어
의 나는 리뷰어다
활동을 위해 책을 제공받아 작성된 서평입니다.
개요: pandas
python
으로 데이터 분석을 하다보면 필수로 거치는 코스인 pandas
. 이를 다루는 많은 글에서 팬더(panda
)를 이미지로 활용하긴 하는데 panel data
에서 유래되었다.
이 pandas
는, 따로 공부를 하고 사용하기보단, 그때그때 하려는 내용을 검색해서 활용해도 문제가 없을 정도로 잘 짜여져 있다.
동시에 그렇기 때문에, pandas
를 깊게 다루는 자료보다는 python
, numpy
와 세트로 같이 데이터 분석
(혹은 데이터 과학)이라는 키워드로 뭉뚱그려서 다루는 자료가 더 많이 알려져 있기도 하다.
만약 데이터 분석을 업무로 하고 있지만 “기술적인 관점에서"
이 pandas
에서 퍼포먼스를 올릴 수 있는 방법에 대한 고민을 하고 있는 사람이 있다면 이 책은 제일 괜찮은 자료가 될 것이라고 생각한다. (한국어로 된 자료 중에는)
이 책의 저자
책에 대한 이야기를 하면서 저자에 대한 이야기를 제일 먼저 하려고 한다.
책을 읽기전에 나는 이런 생각을 했었다.
pandas
는 이미 많은 사람들이 쓰는데 누가 pandas
에 대한 책을 썼을까?
가장 잘 알고 있는 라이브러리 개발진은 메뉴얼까진 만들지만 책은 잘 안쓰는 특징이 있고, pandas
에 대한 책을 쓰려면 당연히 pandas 사용 경험이 많아
어느 정도 잘 알면서 어떤 것이 현업 분석에서 어떻게 중요한 지
, 이를 어떻게 delivery 해야 할지
에 대해서도 잘 알고 있어야 하기 때문이다.
정답은 바로 이 아저씨다.
python
에러에 고통 받고 있으면 와서 “아 그거 이렇게 바꾸면 됨 ㅎㅎ” 할 것 같은 분인데, udemy
에서 33만명의 수강생을 가르친 업계의 큰 형님이시다.
이 책의 장점
- 저자가 원래 엑셀로 분석을 해오다가 15년에
python
으로 전환하면서 여러 시행착오를 겪은 분이기도 한데, 교육의 경험이 있는 분이다보니 책에서도 내용을 풀어가는 “문체
”가 다른 딱딱한 기술 서적과는 꽤 다른 편이다. (번역도 괜찮다) - 책에서 다루는 내용들을 적절하게 따라 할 수 있는
예시 데이터
와상황
. 그리고코드
(with github
)를 같이 제공하고 있다. - 매 단원마다
코딩 챌린지
라는, 배운 내용을 실습해볼 수 있는연습문제
와 꽤친절한 해설
이 달린해답
을 제공한다. 해당 단원의핵심 내용 요약
도 제공한다…!
Series
와 같은 기초 개념부터export/import
,pivot
,pandas option 설정
까지pandas
와 연관된 개념을 다룬다. 책에서는판다스 기본기 다지기
와판다스 응용하기
라는 목차를 통해 구분하고 있는데 말 그대로 기본기와 응용기를 모두 다룬다고 봐도 좋다. (응용 중 일부는 기본기 부분으로 배치해도 좋을 것 같긴 하다)- 위에서 말한 것처럼
pandas
는 다른 개념 (numpy
,python
등)과 같이 활용 되는 경우가 많은데, 이 책에서도 이를 고려하여부록
이라는 이름으로 담아냈다. 부록만 120페이지이며,메소드 체이닝
,PEP
,regexp
,conda/env
,faker
등의 오 이것까지? 싶은 내용들도 담고 있다.
이 책의 특징
- 다음 문장은 책의 본격적인 시작이라고 볼 수 있는, 2장(Series)의
2.1.1 클래스 및 인스턴스
단원의 첫 문장이다. (1장은 개요와 둘러보기)
클래스는 파이썬 객체의 청사진입니다.
pd.Seires
클래스는 템플릿이며 이 템플릿을 가지고 구체적인 인스턴스를 생성해야합니다.
사람에 따라 이 문장에서 많은 느낌을 받을 수 만약 이 문장이 어떤 내용을 말하는지 이해하는 데 큰 어려움이 없다면 이 책은 추천할 만한 책이다. (책에 Seires라고 쓰여있다. 내 오타 아님)
그러나 컴공쪽에 배경지식이 없다면 첫 문장에서 클래스
, 객체
, 템플릿
, 인스턴스
라는, 4개의 낯선 단어에 벽을 느낄 수도 있다. (한가지 다행인 점은 부록을 통해 이를 이해하는데 도움을 얻을 수 있으니, 사람에 따라 부록을 먼저 읽는 것
이 괜찮은 방법일 수도 있다.)
- 다음 문장은
5.1 데이터셋과 메모리 최적화
단원의 일부이다.
10줄도 안되는 코드로 DataFrame의 메모리 사용량을 50% 이상 줄였습니다.
수백만 개의 행이 있는 데이터셋에 미칠 영향을 상상해보세요! 어마어마할 거에요.
데이터셋의 변수 타입을 바꾸는 등 몇가지 작업을 통해 메모리의 관점에서 최적화를 알려주는 내용을 다루고 있는데, 데이터에서 character
를 categorical
로 바꾸면 어떤 장점이 있고, 어떤 원리로 메모리 최적화 가능한 건지에 대해서 설명하고 있다.
개인적으로는 이 책은 꽤 많은 python 기반 분석가
들에게 도움이 될 수 있다고 생각한다.
- 엄밀히는
python
의 특징에 가깝기도 한데,콘솔 / 터미널
기반에서의 프로그래밍이 아닌jupyter
에서의 작업을 전제로 책의 내용이 서술되고 있다. 물론 부록에 설치방법이 나오긴 하지만 pandas를 활용하기 위해서반드시 거쳐야 할 추가 단계가 있다
는 것은 입문자-초급자에게는 꽤 고민이 되는 부분일 수도 있다. - 책이 22년 9월 1일에 나온
따끈따끈한 신작
이다보니, 아직 아래 같은 오타가 조금 있다. 따라 하는 것이 목적이라 에러가 나면 곤란한 실행 코드는 github에 있기 때문에 큰 이슈는 아니긴 하다. (별도로 번역은 읽는데 전혀 지장이 없을 정도로 깔끔하다고 생각한다)
데이터 분석가에서 소프트웨어
엔제니어
로 전향하면서…소프트웨어 엔지니어링 분야에는 ‘중복 배제(Don’t repeat yourself, DRY)’라는
원리 있습니다
.
pd.Seires
클래스는 템플릿이며 이 템플릿을 가지고 구체적인 인스턴스를 생성해야합니다.
요약: 분석을 하고 있다면, 스터디 해보기에 괜찮은 책
- 아래는 (마찬가지로) 책에서 일부 발췌한 문장들이다.
조인의 여정에 ‘조인'해주셔서 감사합니다. 농담이에요!
시간을 배우러 가는데에 시간을 더 지체하면 안 되겠죠? 농담이에요. 민망하니까 어서 본론으로 넘어가겠습니다.
그래프가 데이터의 의미는 잘 표현했지만 레이블을 읽으려면 고개를 돌려야 한다는 단점이 있네요. 아이고 목이야.
즉, 위에서도 언급하긴 했지만 딱딱할 수 있는 기술 / 학습 도서이지만 저자와 역자의 엄청난 노력으로 내용을 부드럽게 풀어냈다
. 이는 배경지식이 없는 사람이라도 스터디하기에 충분히 어려움이 없을 것이라고 생각한다.
단, 1장부터 차례로 공부하는 것보다는 참여자의 수준에 따라 순서를 조금 바꾸는 것
을 권장한다. (책의 전체 페이지수는 587페이지, 정가는 38000원인데 충분한 가치가 있을 것이라고 생각한다)
- 만약
python
기반으로Data Analyst
/Data Scientist
업무를 하고 있다면 (MLE / DE 쪽은 잘 모르겠다) 기술적인 성장에 꽤 도움이 될 책이라고 생각한다.