티스토리 뷰

Hobby/Book

[Book] Pandas in Action

생각많은 소심남 2022. 10. 3. 00:22

(해당 포스트에서 소개하고 있는 "판다스 인 액션" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)

 

판다스 인 액션

대표적인 파이썬 데이터 분석 라이브러리, 판다스의 기본 자료구조 개념부터 데이터 분석법까지 차근차근 배울 수 있는 도서입니다. 초급자부터 상급자까지 모두 만족시킬 수 있는 구성과 내용

hanbit.co.kr

내가 회사에서 하고 있는 일은 생활가전에 인공지능 기술을 넣는 방법에 대해 고민하는 것이다. 이에 대한 결과가 사용자 편의를 가지고 오던, 제어 효율성을 높여서 에너지를 절감할 수 있게 한다던지 이런 방향으로 연구하는 일을 주로 하고 있다. 그런데 가끔 내 직무가 무엇인가에 대해서 진지하게 고민할 때가 있다. 공식적인 직무는 Software Engineer이긴한데, 하는 일을 생각해보면 AI Engineer라고 해야되나 싶기도 하고, 그런데 일을 하다보면 뭔가 구현하는 것보다 현상에 대한 분석을 많이 하는 경우도 많아 Data Scientist라고 해야 할 것 같다는 생각이 든다.뭐 물론 이런 분석이나 기술 구현 모두 Software를 구현하면서 일을 하니까 포괄적인 직무는 Software Engineer라고 해야 되는게 맞는 것 같다.

그런데 생각보다 생활가전일을 하다보니 항상 접하게 되는게 생활가전에 부착되어 있는 센서에서 뽑히는 데이터를 가지고 하는 일들이 많다. 보통 이런 가전의 경우는 이런 내재된 dynamics를 모사할 수 있는 시뮬레이터같은게 없기 때문에 일반적으로는 어떤 동작을 취했을때 나오는 센서 데이터를 바탕으로 유추하는 방향으로 진행하는 편이 많다. 그래서 물론 인공지능 기술 개발도 중요한 일이긴 하지만, 이와 비교했을 때 센서 데이터를 "잘" 분석하는 것도 하나의 R&R인 측면도 있다. 그래서 인공지능기술개발을 할때는 Tensorflow, 뭔가 논문 예제를 다룰때는 PyTorch를 하다가도, 이 때 필요한 데이터의 전처리나 시각화 분석할 때는 NumPy나 Pandas를 많이 사용하곤 한다. 그 중에서도 pandas와 NumPy는 뭔가 기술이 아닌 분석의 성격이 있긴 하지만, 그래도 뭔가 현상을 이해하고 시각화하는데 필수적인 툴이라고 생각한다.

판다스 인 액션

 이번에 소개할 책은 이 Pandas에 대해서 디테일하게 소개한 책이다. 그런데 나만 그렇게 느끼는 것인지는 모르겠지만 pandas를 많이 써보다보면, 이 툴은 뭔가 코딩 테스트와 비슷한 느낌을 준다. 가령 내가 어떤 지원자에게 raw data 하나 던져주고, 이 data의 특정 조건에 해당하는 값들의 평균과 표준편차, 그리고 최빈값을 dataframe 형태로 뽑아보라고 문제를 낸다면, 그때부터 열심히 고민하게 될 것이다. 그 특정 조건에 맞는 값들은 어떻게 찾을 것이며, Index는 어떻게 잡고, group은 어떻게 지을 것인지에 대해서 방법을 찾고 구현을 할 수 있을 것이다. 혹은 data를 string화해서 정규표현식을 통해서 원하는 요소만 찾게도 해 볼 수 있는 것이고... 구현할 수 있는 방법은 정말 다양하고, 이런 기능들을 pandas에서 구현할 수 있다. 정말 데이터 분석에 필수적인 툴이라고 할 수 있다.

책은 크게 1부 기본기 다지기와 2부 응용하기 두 부로 나눠져 있으며, 1부에서는 pandas에서 활용되는 자료형과 기본적인 매커니즘에 대해서 소개되어 있다면, 2부에서는 실제 데이터셋을 예제로 하여, pandas에서 제공하는 api를 자유자제로 활용할 수 있는 방법에 대해서 소개한다. 나같은 경우는 pandas를 현업에서 자주 활용하기도 해서 1부보다는 2부 내용을 위주로 주로 살펴보았다.

나는 사실 pandas에서 제일 다루기 어려운 개념 중 하나가 MultiIndex와 GroupBy 개념인데, 이 책에서는 각각 7장과 9장에서 해당 내용을 설명하고 있고, 기본 개념에 대한 자세한 설명이 책에서 제공되고 있어서 좋았다. 특히 좋았던 부분은 각 장의 후반부마다 "코딩 챌린지"라는 이름으로 문제를 제공하고 이에 대한 풀이법을 이어서 설명하는데, 마치 강의 영상을 보는 것처럼 푸는 방법과 이에 대한 결과를 보여주는 전개방식이 실제 문제를 여기에 대입해서 이해하는 도움이 될 것이라고 생각한다. 개인적으로 외서 시리즈 중 좋아하는 형태의 하나가 Manning 출판사의 "In Action" 시리즈인데, 이 책도 독자가 접할 수 있는 실제 문제와 책의 전개 방향을 일치시키려는 노력에 있어 읽기에 좋지 않을까 하는 생각을 해본다. 기타 장 부분도 실제 접할 수 있을법한 예시를 바탕으로 다뤄진 내용도 좋았던 것 같다.

참고로 이 책의 부록은 pandas와 numpy에 대한 기본지식과 fake data 생성을 위한 faker 사용법, 그리고 정규표현식에 대한 내용이 포함되어 있는데, 분량이 무려 책의 1/5 정도이다. 기본지식이 부족하다고 느낄 수 있어도 부록에서 이를 커버할 만큼 방대한 분량들이 담겨져 있는 것이다.(한편으로는 너무 기초내용을 소개하는데 많은 분량이 들어간건 아닌가 싶기도 하고...) 

나도 그렇긴 하지만 pandas는 뭔가 api를 암기하고 사용법을 빠삭하게 알기보다는 공식 문서에서 제공하는 것을 읽고, 제공되는 예시를 내 문제에 대입하는 방법을 많이 활용하는데, 어떻게 보면 이 책은 그런 공식 문서를 책으로 도출한 일종의 가이드 북이라고 보면 좋을 것 같다. 때문에 뭔가 데이터 분석을 위해서 머리를 싸맬 문제가 있다면 이 책의 관련 장을 일고 한번 읽어보는 것도 좋은 문제 해결 방법이 되지 않을까 싶다.


책의 예제 코드는 jupyter notebook형태로 제공되며, github은 아래와 같다.

 

GitHub - paskhaver/pandas-in-action: Complete source code (datasets and Jupyter Notebooks) for Pandas In Action

Complete source code (datasets and Jupyter Notebooks) for Pandas In Action - GitHub - paskhaver/pandas-in-action: Complete source code (datasets and Jupyter Notebooks) for Pandas In Action

github.com

 

댓글