Pandas 꽤 잘 활용하기, pandas in action

파이썬으로 데이터 분석한다면 한번 쯤은

Jinhwan Kim
7 min readSep 13, 2022

이번 글은 Pandas in Action이라는 책의 리뷰로,

한빛미디어나는 리뷰어다 활동을 위해 책을 제공받아 작성된 서평입니다.

표지 이미지

개요: pandas

python 으로 데이터 분석을 하다보면 필수로 거치는 코스인 pandas. 이를 다루는 많은 글에서 팬더(panda)를 이미지로 활용하긴 하는데 panel data에서 유래되었다.

pandas는, 따로 공부를 하고 사용하기보단, 그때그때 하려는 내용을 검색해서 활용해도 문제가 없을 정도로 잘 짜여져 있다.

동시에 그렇기 때문에, pandas를 깊게 다루는 자료보다는 python, numpy와 세트로 같이 데이터 분석 (혹은 데이터 과학)이라는 키워드로 뭉뚱그려서 다루는 자료가 더 많이 알려져 있기도 하다.

만약 데이터 분석을 업무로 하고 있지만 “기술적인 관점에서"pandas에서 퍼포먼스를 올릴 수 있는 방법에 대한 고민을 하고 있는 사람이 있다면 이 책은 제일 괜찮은 자료가 될 것이라고 생각한다. (한국어로 된 자료 중에는)

이 책의 저자

책에 대한 이야기를 하면서 저자에 대한 이야기를 제일 먼저 하려고 한다.

책을 읽기전에 나는 이런 생각을 했었다.

pandas는 이미 많은 사람들이 쓰는데 누가 pandas에 대한 책을 썼을까?

가장 잘 알고 있는 라이브러리 개발진은 메뉴얼까진 만들지만 책은 잘 안쓰는 특징이 있고, pandas에 대한 책을 쓰려면 당연히 pandas 사용 경험이 많아 어느 정도 잘 알면서 어떤 것이 현업 분석에서 어떻게 중요한 지, 이를 어떻게 delivery 해야 할지에 대해서도 잘 알고 있어야 하기 때문이다.

정답은 바로 이 아저씨다.

출처: Boris Paskhaver youtube, udemy

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% 이상 줄였습니다.

수백만 개의 행이 있는 데이터셋에 미칠 영향을 상상해보세요! 어마어마할 거에요.

데이터셋의 변수 타입을 바꾸는 등 몇가지 작업을 통해 메모리의 관점에서 최적화를 알려주는 내용을 다루고 있는데, 데이터에서 charactercategorical로 바꾸면 어떤 장점이 있고, 어떤 원리로 메모리 최적화 가능한 건지에 대해서 설명하고 있다.

개인적으로는 이 책은 꽤 많은 python 기반 분석가들에게 도움이 될 수 있다고 생각한다.

  • 엄밀히는 python의 특징에 가깝기도 한데, 콘솔 / 터미널 기반에서의 프로그래밍이 아닌 jupyter에서의 작업을 전제로 책의 내용이 서술되고 있다. 물론 부록에 설치방법이 나오긴 하지만 pandas를 활용하기 위해서 반드시 거쳐야 할 추가 단계가 있다는 것은 입문자-초급자에게는 꽤 고민이 되는 부분일 수도 있다.
  • 책이 22년 9월 1일에 나온 따끈따끈한 신작이다보니, 아직 아래 같은 오타가 조금 있다. 따라 하는 것이 목적이라 에러가 나면 곤란한 실행 코드는 github에 있기 때문에 큰 이슈는 아니긴 하다. (별도로 번역은 읽는데 전혀 지장이 없을 정도로 깔끔하다고 생각한다)

데이터 분석가에서 소프트웨어 엔제니어로 전향하면서…

소프트웨어 엔지니어링 분야에는 ‘중복 배제(Don’t repeat yourself, DRY)’라는 원리 있습니다.

pd.Seires 클래스는 템플릿이며 이 템플릿을 가지고 구체적인 인스턴스를 생성해야합니다.

요약: 분석을 하고 있다면, 스터디 해보기에 괜찮은 책

  • 아래는 (마찬가지로) 책에서 일부 발췌한 문장들이다.

조인의 여정에 ‘조인'해주셔서 감사합니다. 농담이에요!

시간을 배우러 가는데에 시간을 더 지체하면 안 되겠죠? 농담이에요. 민망하니까 어서 본론으로 넘어가겠습니다.

그래프가 데이터의 의미는 잘 표현했지만 레이블을 읽으려면 고개를 돌려야 한다는 단점이 있네요. 아이고 목이야.

즉, 위에서도 언급하긴 했지만 딱딱할 수 있는 기술 / 학습 도서이지만 저자와 역자의 엄청난 노력으로 내용을 부드럽게 풀어냈다. 이는 배경지식이 없는 사람이라도 스터디하기에 충분히 어려움이 없을 것이라고 생각한다.

단, 1장부터 차례로 공부하는 것보다는 참여자의 수준에 따라 순서를 조금 바꾸는 것을 권장한다. (책의 전체 페이지수는 587페이지, 정가는 38000원인데 충분한 가치가 있을 것이라고 생각한다)

출처: DevOps.com
  • 만약 python 기반으로 Data Analyst / Data Scientist 업무를 하고 있다면 (MLE / DE 쪽은 잘 모르겠다) 기술적인 성장에 꽤 도움이 될 책이라고 생각한다.

--

--

No responses yet