메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

파이썬 라이브러리를 활용한 데이터 분석(2판)

영화 평점, 이름 통계, 선거 데이터 등 실사례 사용

한빛미디어

번역서

절판

4.6점 (26명)
좋아요 : 7

빅데이터 분석에 관한 가장 완벽한 교재! 

 

이 책은 NumPy, pandas, matplotlib, IPython, Jupyter 등 다양한 파이썬 라이브러리를 사용해서 효과적으로 데이터를 분석하는 방법을 알려준다. pandas의 새로운 기능뿐만 아니라 메모리 사용량을 줄이고 성능을 개선하는 고급 사용법까지 다룬다. 또한 모델링 도구인 statsmodels와 scikit-learn 라이브러리도 소개한다. 연대별 이름 통계 자료, 미 대선 데이터베이스 자료 등 실사례로 따라 하다 보면 어느덧 여러분도 데이터에 알맞게 접근하고 효과적으로 분석하는 전문가가 될 것이다. 

 

 

『파이썬 라이브러리를 활용한 데이터 분석』 드디어 개정!

 

이 책의 초판이 출간된 2012년은 pandas 개발 초기로, 파이썬용 오픈소스 데이터 분석 라이브러리가 흔하지 않았습니다. 이번에 pandas의 새로운 기능과 5년여간의 세월이 흐르는 동안 낡았거나 사용법이 바뀐 내용을 모두 반영하여 책 전반을 다시 다듬었습니다. 또한 당시에는 존재하지 않았거나 책에 싣기에는 불안했던 갓 나온 도구들을 새로 소개하는 내용을 추가했습니다. 2판의 주요 변경 사항은 다음과 같습니다.

  • 모든 코드를 파이썬 3.6 기반으로 수정
  • 아나콘다 파이썬 배포판과 몇몇 필수 파이썬 패키지로 설치
  • 최신 pandas 라이브러리 사용
  • pandas 고급 사용법과 사용팁 추가
  • statsmodels와 scikit-learn 라이브러리 소개

 

이 책에서 다루는 내용

 

이 책은 파이썬으로 데이터를 다루는 다양하고 기본적인 방법을 소개합니다. 그러기 위해 파이썬 프로그래밍 언어의 일부와 데이터 분석 문제를 효율적으로 해결하는 데 도움이 되는 몇 가지 라이브러리를 다룹니다. ‘데이터 분석’이 이 책의 제목이긴 하지만 데이터 분석 방법론이 아니라 파이썬 프로그래밍, 라이브러리, 도구에 집중합니다. 주요 내용은 다음과 같습니다.

  • IPython 셸, 주피터 노트북 사용하기
  • NumPy 기본 및 고급 기능 알아보기
  • pandas로 데이터 분석 입문하기
  • 유연한 도구를 사용해 데이터 로딩, 정제, 조인, 병합, 변형하기
  • matplotlib으로 유용한 시각화 만들기
  • pandas groupby 기능을 적용해 데이터를 나누고 요약하기
  • 시계열 데이터 분석 및 조작하기
웨스 맥키니 저자

웨스 맥키니

미국 내슈빌에서 활동하고 있는 소프트웨어 개발자이자 기업가. 2007년 MIT 수학과 학부 과정을 마치고 코네티컷주 그리니치에 있는 AQR 캐피털 매니지먼트에서 금융 분석가로 근무했다. 복잡하고 느린 데이터 분석 도구에 실망해 2008년 파이썬을 배우면서 판다스 프로젝트를 시작했다. 파이썬 데이터 커뮤니티의 활발한 일원이며 데이터 분석, 금융, 통계 계산 애플리케이션에서 파이썬 사용을 독려하고 있다.

공동 창업한 DataPad가 2014년 클라우데라(Cloudera)에 인수된 이후 빅데이터 기술에 집중하기 시작했고, 아파치 소프트웨어 재단의 프로젝트인 아파치 애로(Apache Arrow)와 아파치 파케이(Apache Parquet)의 PMC(프로젝트 관리 위원)로 합류했다. 2018년 R스튜디오(RStudio), Two Sigma Investments와 협력해 아파치 애로 개발에 중점을 둔 비영리단체 Ursa Labs를 설립했다. 2021년에는 기술 스타트업인 Voltron Data를 공동 설립해 현재 최고 기술 책임자로 일하고 있다.

 

 

김영근 역자

김영근

애플 II에서 BASIC으로 처음 프로그래밍을 시작했고, 장래 희망은 항상 프로그래머라고 말하고 다니다 정신 차리고 보니 어느덧 20년 경력을 훌쩍 넘긴 개발자가 되었다. 리눅스 커뮤니티에서 오랫동안 활동했으며 임베디드 환경에서부터 미들웨어, 웹, 스마트폰 애플리케이션에 이르기까지 다양한 분야에서 개발했다. 아시아 최초의 파이썬 소프트웨어 재단의 이사로 활동했으며 2014년 ‘파이콘 한국(PyCon Korea)’을 처음 시작했다. 스타트업 CTO로 재직 중이며 소프트웨어 마에스트로의 기술 멘토이기도 하다. 현재의 장래 희망은 장학 재단 설립이다. 한빛미디어에서 『리눅스 시스템 프로그래밍(개정2판)』(2014), 『고성능 파이썬』(2016)을 번역했다.

 

CHAPTER 1 시작하기 전에

1.1 이 책에서 다루는 내용

1.2 왜 데이터 분석에 파이썬을 사용하나

1.3 필수 파이썬 라이브러리

1.4 설치 및 설정 

1.5 커뮤니티와 컨퍼런스

1.6 이 책을 살펴보는 방법

 

CHAPTER 2 파이썬 언어의 기본, IPython, 주피터 노트북

2.1 파이썬 인터프리터 

2.2 IPython 기초

2.3 파이썬 기초 

 

CHAPTER 3 내장 자료구조, 함수, 파일

3.1 자료구조와 순차 자료형 

3.2 함수

3.3 파일과 운영체제  

3.4 마치며

 

CHAPTER 4 NumPy 기본: 배열과 벡터 연산

4.1 NumPy ndarray: 다차원 배열 객체 

4.2 유니버설 함수: 배열의 각 원소를 빠르게 처리하는 함수 

4.3 배열을 이용한 배열지향 프로그래밍

4.4 배열 데이터의 파일 입출력

4.5 선형대수

4.6 난수 생성  

4.7 계단 오르내리기 예제

4.8 마치며 

 

CHAPTER 5 pandas 시작하기

5.1 pandas 자료구조 소개

5.2 핵심 기능

5.3 기술 통계 계산과 요약

5.4 마치며 

 

CHAPTER 6 데이터 로딩과 저장, 파일 형식

6.1 텍스트 파일에서 데이터를 읽고 쓰는 법

6.2 이진 데이터 형식

6.3 웹 API와 함께 사용하기 

6.4 데이터베이스와 함께 사용하기

6.5 마치며 

 

CHAPTER 7 데이터 정제 및 준비

7.1 누락된 데이터 처리하기 

7.2 데이터 변형 

7.3 문자열 다루기 

7.4 마치며 

 

CHAPTER 8 데이터 준비하기: 조인, 병합, 변형

8.1 계층적 색인

8.2 데이터 합치기 

8.3 재형성과 피벗 

8.4 마치며 

 

CHAPTER 9 그래프와 시각화

9.1 matplotlib API 간략하게 살펴보기

9.2 pandas에서 seaborn으로 그래프 그리기

9.3 다른 파이썬 시각화 도구 

9.4 마치며 

 

CHAPTER 10 데이터 집계와 그룹 연산

10.1 GroupBy 메카닉

10.2 데이터 집계  

10.3 Apply: 일반적인 분리-적용-병합

10.4 피벗테이블과 교차일람표 

10.5 마치며 

 

CHAPTER 11 시계열

11.1 날짜, 시간 자료형, 도구  

11.2 시계열 기초  

11.3 날짜 범위, 빈도, 이동  

11.4 시간대 다루기  

11.5 기간과 기간 연산

11.6 리샘플링과 빈도 변환  

11.7 이동창 함수  

11.8 마치며 

 

CHAPTER 12 고급 pandas

12.1 Categorical 데이터

12.2 고급 GroupBy 사용

12.3 메서드 연결 기법

12.4 마치며 

 

CHAPTER 13 파이썬 모델링 라이브러리

13.1 pandas와 모델 코드의 인터페이스  

13.2 Patsy를 이용해서 모델 생성하기  

13.3 statsmodels 소개  

13.4 scikit-learn 소개 

13.5 더 공부하기  

 

CHAPTER 14 데이터 분석 예제

14.1 Bit.ly의 1.USA.gov 데이터  

14.2 MovieLens의 영화 평점 데이터  

14.3 신생아 이름  

14.4 미국농무부 영양소 정보  

14.5 2012년 연방선거관리위원회 데이터베이스  

14.6 마치며 

 

APPENDIX A 고급 NumPy

A.1 ndarray 객체 구조  

A.2 고급 배열 조작 기법

A.3 브로드캐스팅 

A.4 고급 ufunc 사용법  .

A.5 구조화된 배열과 레코드 배열  

A.6 정렬에 관하여 

A.7 umba를 이용하여 빠른 NumPy 함수 작성하기  

A.8 고급 배열 입출력  

A.9 성능 팁  

 

APPENDIX B IPython 시스템 더 알아보기

B.1 명령어 히스토리 사용하기  

B.2 운영체제와 함께 사용하기  

B.3 소프트웨어 개발 도구  

B.4 IPython을 이용한 생산적인 코드 개발에 관한 팁  

B.5 IPython 고급 기능  

B.6 마치며  

“이미 필독서가 된 이 책이 업그레이드되었다. 2판에는 파이썬 3.6부터 pandas 최신 기능에 이르기까지 이 책의 가치를 더 향상시킬 내용이 담겼다. 왜 파이썬 라이브러리인지, 이 도구들을 어떻게 다뤄야 하는지 설명해 독자가 새롭고 창의적인 방식으로 효율적인 사용법을 익히도록 도와준다.”

- 페르난도 페레즈(Fernando Pérez)_ IPython 창시자, UC 버클리 통계학과 조교수

이 책은 2019년에 나왔던 책의 개정판이라고 한다. 1판과 달리 2판에서는 사이킷런 1.0버전에 맞게 바뀐 내용을 표기해서 적고 있고, 책의 전반적인 내용도 머신러닝을 다루고 있기에 사이킷런에 대한 모든 클래스와 함수들을 살펴보는데 주력을 하고 있다.

 

 

이 책의 가장 좋은 점은 물 흐르듯 설명을 이어나간다는 점을 들 수 있을 것 같다. 코드와 이론을 병행하면서 모델에 대한 기본적인 이해를 사용한 후 어떤 상황에서 어떤 함수를 써야하는지를 코드로 보여주고 있어 지식과 실습을 겸비할 수 있어 무척 좋다고 느껴졌다.

 

 

또한 어떻게 데이터를 전처리 하는지를 데이터의 유형에 따라 세부적으로 나뉘었으며, 이를 바탕으로 어떤 모델을선택할지, 어떤식으로 분석할지 일련의 과정을 하나하나 세세히 설명하고 있어, 정말 이 책 한권이면 추후에 어느 모델로 어떤 데이터를 분석하더라도 금방금방 찾아서 확인할수 있을 좋은 내용의 책이란게 느껴졌다. O'REILLY에서 낸 건 늘 믿을만 했는데, 이번 책에서도 그 점이 잘 느껴졌다.

 

 

사실 최근 딥러닝이 주목을 받기에 상대적으로 단순하다고 느껴지는 머신러닝이 덜 주목을 받고 있어 나조차도 관심이 소홀하다고 느껴지는게 많았는데, 이 책의 내용을 차근차근 살펴보니 생각보다 정리해야하는 내용이 많다는것이 느껴졌고, 그만큼 알차고 좋은 내용이 많다는 것도 잘 다가왔다. 머신러닝의 모델 뿐 아니라 어떤 식으로 더 고도화를 할지, 더 적합한 데이터셋을 만드는지에 대한 노하우도 잘 실려있어서 전반적인 모델을 사용한 프로젝트에 큰 도움을 줄 수 있다고 느껴진다.

 

#데이터분석 #파이썬 #판다스 #데이터시각화 #데이터모델링 #고급판다스 #시계열분석 #데이터활용

정말 이보다 더 친절할 수는 없겠다는 생각이 드는, 데이터 분석가로 입문하고 싶은 분들께 추천 드리는 책이다. 

아마, 이 분야에 처음이라 하더라도 책의 목차만 쓱~ 훑어봐도 "와~ 정말 친절하다! 그냥 이 대로 따라 하면 되겠네!"라는 생각이 들 것이다. 아래 목차에서 좀 주의 깊게 읽으면 좋은 부분만 별도로 표시해 놓았다. 

Chapter 1. 시작하기 전에

- 필수 파이썬 라이브러리

- 커뮤니티와 콘퍼런스

Chapter 2. 파이썬 언어의 기본, IPython, 주피터 노트북

- 자기관찰(인트로스펙션 introspection)

- 시맨틱, 스칼라형, 흐름 제어

Chapter 3. 내장 자료구조, 함수, 파일

- 튜플, 리스트, 사전, 집합

- 익명 함수(lambda 함수), 커링(일부 인자만 취하기), 제너레이터(이터레이터 프로토콜)

Chapter 4. Numpy 기본: 배열과 벡터 연산

- Numpy ndarray(다차원 배열 객체), ufunc(유니버설 함수)

- 배열 지향 프로그래밍, 배열 데이터의 파일 입출력

Chapter 5. pandas 시작하기

- pandas 자료구조(Series, DataFrame, 색인 객체)

- 핵심 기능(색인하기, 선택하기, 거르기, 재색인, 중복 색인)

- 기술 통계 계산(상관관계, 공분산, 멤버십)

Chapter 6. 데이터 로딩과 저장, 파일 형식

- JSON 데이터, 웹 스크래핑(XML과 HTML)

- 웹 API, 데이터베이스와 함께 사용하기

Chapter 7. 데이터 정제 및 준비

- 누락 데이터 골라내기, 결측치 채우기

- 중복 제거하기, 개별화와 양자화, 특이값 제외

Chapter 8. 데이터 준비하기: 조인, 병합, 변형

- 계층적 색인, 색인 병합하기

- 계층적 색인으로 재형성하기, 피벗하기(긴 형식 ↔ 넓은 형식)

Chapter 9. 그래프와 시각화

- matplotlib API, seaborn

- 동적 대화형 그래프(Bokeh, Plotly)

Chapter 10. 데이터 집계와 그룹 연산

- GroupBy 메카닉, 데이터 집계

- Apply 메서드: 일반적인 분리-적용-병합

Chapter 11. 시계열

- 날짜 범위, 빈도, 이동

- 시간대 다루기, 기간과 기간 연산

- 리샘플링과 빈도 변환, 이동창 함수(moving window function)

Chapter 12. 고급 pandas

- Categorical 데이터, 고급 GroupBy 사용

- 메서드 연결 기법(pipe 메서드)

Chapter 13. 파이썬 모델링 라이브러리

- 팻시(Patsy) 이용해서 모델 생성하기

- statsmodels 소개(선형 모델, 시계열 처리 예측)

- scikit-learn 소개

Chapter 14. 데이터 분석 예제

- Bit.ly이 1.USA.gov 데이터

- MovieLens의 영화 평점 데이터

- 신생아 이름 유행 분석

- 미국 농무부 영양소 정보

- 2012년 연방선거관리위원회 데이터베이스

Appendix A. 고급 NumPy

- 팬시 색인(take, put), 고급 ufunc

- Numba를 이용한 빠른 NumPy 함수 작성

- 성능 팁, 인접 메모리의 중요성

Appendix B. IPython 시스템 더 알아보기

- 소프트웨어 개발 도구

- 생산적인 코드 개발 팁(모듈 의존성 리로딩)

- 고급 기능(친화적인 클래스 만들기)

특히, Chapter 9장의 그래프 시각화는 가장 많이 사용하는 위주로 정말 친절하게 설명이 잘 되어 있다.

또한 Chapter 14장의 다양한 데이터 분석 예제는 이 책에서 배운 기술들을 처리하고자 하는 문제 위주로 실습해 볼 수 있도록 잘 구성이 되어 있다.

캐글 등 데이터 분석 및 딥러닝 경진 대회에 나갈 때 가장 중요한 부분이라고 할 수 있는 '탐색적 데이터 분석(EDA: Exploratory Data Analysis)' 과정에서 제일 빈번하게 많이 사용하는 기능들이 어느 정도 손에 착착 붙도록 잘 설계되어 있다고 생각된다. 

이 책에 수록된 모든 코드 예제와 관련 데이터는 "파이썬 데이터 분석 깃허브 저장소"에서 다운로드 받을 수 있다. 

텐서플로우나 파이토치 등 딥러닝 프레임워크 공부를 목적으로 파이썬 데이터 분석부터 시작해 보려는 분들께 정말 적합한 책이 아닌가 생각된다. 

 

파이썬 라이브러리를 활용한 데이터 분석 2판

 

표지

 

이번에 보게된 책은

"데이터 분석을 위해 파이썬 라이브러리를 사용하는 방법"을

알려주는 교과서와 같은 유명한 책이다.

 

 

교과서와 같은 책이라고 해서

오래된 책이라고 생각할 수도 있는데

오래된 책 맞다.

 

그렇다고 해서 'out of date' 된 책은 아니다.

 

제목에도 써있는 것처럼

"2판"으로 나왔기 때문이다.

 

2판 5쇄

 

거기에다가 5쇄까지 찍었다.

유명한 책인 것은 분명하다.

 

2판

 

결론적으로 2019년에 2판으로 업데이트 했고

내용은 지금도 유효하다!!!

 

 

 

"학습 환경"

이 책에서 제안하는 학습 환경은

Anaconda 설치해서

IPython 또는 Jupyter Notebook

사용하는 것이다.

 

IPython & Jupyter

 

Jupyter Notebook의 근간이 IPython 이라는 것을

처음 알았다 @.@

 

 

추가적으로 IDE(통합 개발 환경)를 소개해주기는 하는데,

결국은 IPython 또는 Jupyter Notebook을

사용하는 것을 권장하고 있다.

IDE

VSCode(Visual Studio Code) 언급이 없는 것으로 보아

2019년 이전에 작성한 책이 맞는 것 같다 ^^

하지만, 공부에는 지장이 없다 !!!

 

 

 

책 내용은

기본 자료형부터 설명을 시작하면서

Numpy와 Pandas를 중심으로

너무나 잘 설명해주고 있다.

 

책 내용도 훌륭하지만,

코드 예제 데이터는 꼭 찾아보길 바란다.

https://github.com/wesm/pydata-book

 

단순히 샘플 코드만 있는 것이 아니라

Jupyter Notebook 파일로 제공해주면서

설명하는 내용까지 담겨있다.

 

예제 코드

 

최근 많은 분들이 계속 관심을 많이 갖고 있는

Machine Learning, Deep Learning, Big Data 등의

공부를 하게 되면

반드시 거쳐가는 것이 바로

Python 특히, Numpy & Pandas 라이브러리에 대해서

공부를 하게 된다.

 

이 때, 정말 많은 도움이 될 책으로 추천할 수 있을 것 같다!!!

 

 

 

이 책을 보면서 특히 호감이 들었던 부분이

바로 "Chapter 11. 시계열" 이다.

 

시계열 데이터

 

개인적으로 Python으로 작업하면서

많은 고생을 했던 (즉, 시간을 엄청 많이 빼았겼던)

부분이 바로 "날짜" & "시간" 이었다.

 

즉, "시계열" 데이터 인데,

이것을 하나의 챕터로 깊게 다뤄주고 있어서

정말 감동했다.

 

 

 

이 책에 대해서 짧게 서평하자면

Python으로 데이터를 다루고 싶은 모든 분들에게 추천하는 책이다.

 

Numpy, Pandas는 물론이고

기본 내장 데이터형부터 시작해서

고급 데이터 분석까지 차분히 설명해주고 있다.

 

 

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


20210914_234212.jpg

 

프로그래밍 언어 관련 <책>을 손에 쥔다는 것

이전에도 파이썬 관련 도서의 서평을 썼습니다. 이번에도, 여전히, 그리고 파이썬에만 국한되지 않은 권고사항이 있습니다.

파이썬을 아직 설치도 해보지 않은 분들 보다는 최소한 작은 프로젝트라도 해보신 분들께 <책>을 추천드립니다. "

물론 저는 처음부터 책으로 학습한게 아니기 때문에 완벽하게 표본을 비교할 수는 없지만, 저도 배울 때 문법 책 1페이지부터 시작하라는 추천을 받은 적은 없습니다. 대신 강의로 파이썬을 입문하고, 90% 구글링으로 작은 프로젝트를 해보고, 그 빈도가 조금씩 줄어드는 시점에서 <책>을 손에 쥐었습니다.

그렇기 때문에 책을 한 장 한 장 넘길 때 마다 아하 모먼트가 이어졌습니다. 처음부터 책을 보기 시작하면 지루하겠지만요. 나도 모르게 이해는 안 되지만 관성적으로 쓰던 것들의 원리를 알게 되니까요. 아는 게 많아질수록 더 효율적인 코드를 짜게 되는 건 물론입니다.

왜, <파이썬 라이브러리를 활용한 데이터 분석>일까?

얼마 전에 데이터 관련 라디오를 듣다가 공감했던 이야기가 있습니다. " 데이터분석가도 파이썬 같은 프로그래밍 언어를 사용하지만, 개발을 하는 건 아니다. " 실제로 자주 사용하는 라이브러리가 개발자 분들과는 조금 다르지요. 가장 많이 사용하는 Pandas 라이브러리만 해도 개발 보다는 분석에 최적화 되어 있습니다.

서점에서 '영어' 학습서를 파는 곳을 가보면 종류가 참 다양합니다. 기본적인 문법서부터 시작해서, 비즈니스 영어, 일상영어 등 목적에 따라서 같은 언어인데도 참 다릅니다. 이렇게 생각하면 쉽지요!

파이썬 문법서를 보는 것도 언어 자체를 이해하는 데에 도움이 많이 되지만, 아무리 두껍고 자세한 문법책이라도 모든 영역을 자세하게 다룰 수는 없습니다. 따라서, '데이터 분석'이라는 목적에 특화된 이 책이 특별한 겁니다. 데이터 형식 같은 기초 문법을 설명하더라도 실제로 데이터 분석에 활용하는 것을 가정하기 때문에, 훨씬 친숙하고 도움이 되지요.

어떻게 활용하면 좋을까? (feat. 구글링)

기본 문법부터 고급 기능까지 포괄하고 있습니다. 기초 문법과 라이브러리는 물론이고,IPython 과 주피터노트북과 같은 유용한 툴에 관해서도 언급하고 있습니다. 파이썬 101 까지는 아니지만, 데이터분석을 위한 파이썬 101 정도는 되겠습니다. 저도 실제로 처음부터 가볍게 실습하면서 읽었는데, 상당히 도움이 되었습니다.

현업에서는 분석 자체가 중요하기 때문에 빠른 구현이 중요합니다. 그만큼 구글링이 필요하지요. 일단 어떻게 하는 건지는 이해가 되고, 어떤 문법을 쓰면 어떤 결과가 나오는지는 이해가 됩니다. 하지만 애초에 구글링을 할 때 자세한 이론적 설명 보다는 빠른 사용법을 찾습니다. 그래서 책을 통한 학습이 송송 구멍이 난 부분을 채워주지요.

만약 파이썬 기초 학습은 했는데, Pandas 는 써보지 않은 분들이라면 해당 챕터부터 시각화 부분, 분석예제까지는 그대로 따라서 실습해보시는 것도 추천합니다. 물론 한 번 따라한다고 전부 기억할 수 없으니 구글링은 계속 하게 되는데요. 뭐가 있는지도 모르고 구글링 하는 것과 키워드 정도는 알고 구글링 하는 건 전혀 다르답니다! 이때 중요한 건 눈으로 읽으면서 '이런 게 있구나'에 그치지 않고 직접 따라해보는 겁니다!!

저는 현업에서도 파이썬을 사용해본 정도의 수준인데, 그래서 더 재미있었습니다. 원래 복습-복습-복습은 숙명이고.. 숨겨진 꿀 기능을 찾고, 더 빠르고, 가독성 높고, 효율적인 코드를 짤 수 있게 해주죠. 파이썬 문법책을 꼼꼼히 읽어봤다면 그 부분은 실습까지는 아니어도, 앞서 이야기한 것처럼 '분석가 입장에서는 이런 문법을 이렇게 생각할 수 있구나' 느끼면서 읽어보시는 걸 추천드립니다!

 

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

한 줄 요약 : 데이터 분석 이론이 아니라 파이썬과 라이브러리를 활용해서 실습 경험을 쌓을 때 도움되는 책


 

[파이썬 라이브러리를 활용한 데이터 분석] 표지

 

시중에 출간된 데이터 분석 책을 크게 두 가지로 분류된다.

1. 이론 중심으로 데이터 분석에 대해 정리한 책

2. 프로그래밍 언어로 간단한 예제들을 실행해보는 책

 

[파이썬 라이브러리를 활용한 데이터 분석]은 이 두 가지를 적정선에서 잘 조합되어 있다.

NumPy, Pandas, Matplotlib, IPython, Jupyter 등 다양한 파이썬 라이브러리를 사용하여 실습을 진행하도록 되어 있다.

 

데이터 분석 책을 보면 복잡한 수식과 그 수식을 설명하는 긴 설명때문에 금방 포기했었다.

라면을 끓이는 것에 비유할 수 있겠다.

라면을 끓일 때는 냄비에 물을 붓고, 끓이고, 면과 스프를 넣고 3분 기다렸다가 먹으면 된다.

라면의 면발을 어떻게 튀겨야 하고, 스프에 들어가는 재료의 구성 비율은 어떻게 맞추고... 이런 것들을 알면 좋겠지만 내가 필요한 건 그게 아니라는 점이다.

 

이 책이 그렇다.

데이터 분석을 하려면 파이썬과 라이브러리를 활용해서 어떤 결과를 내야 한다.

복잡한 수식과 그 이유를 알면 좋겠지만 일단 실습을 끝내고 나서 심화학습하면 된다.

이런 점에서 실습 위주로 되어 있어서 이 고민은 내려놓을 수 있었다.

 

주요 실습 내용은 아래와 같다.

  • IPython 셸, 주피터 노트북 사용하기
  • NumPy 기본 및 고급 기능 알아보기
  • pandas로 데이터 분석 입문하기
  • 유연한 도구를 사용해 데이터 로딩, 정제, 조인, 병합, 변형하기
  • matplotlib으로 유용한 시각화 만들기
  • pandas groupby 기능을 적용해 데이터를 나누고 요약하기
  • 시계열 데이터 분석 및 조작하기

하지만 파이썬 언어의 사용법과 같은 최소한의 지식은 있어야 한다.

 


 

커버가.. 동물을 무서워하는 나로서는 애써.. 못본척하게 되는 단점이 있지만 :)

오렐리의 책은 정말 오랜만이다.

한창 머신러닝 공부할 때 썼던 <핸즈온 머신러닝>과 5월의 리뷰 책이었던 <실전 시계열 분석>에 이은 세번째 만남이다.

오렐리 책을 받아들면 묘하게 든든한 느낌이 든다.

책이 워낙 두꺼워서 이거 할 수 있나 싶긴하지만, 막상 책을 읽으면서 실습하다보면 조금 삭막해보이는 겉모습과 다르게 난이도가 나쁘지 않았다.

그리고 이번 책은 특히 지난 두권과 다르게 이미 어느정도는 알고있고 직접 코드 작성 작업을 해보았던 파이썬 라이브러리에 관한 내용이라서 살짝 기대되기까지 했다.

책 읽을 연휴만을 기다렸다.

파이썬에 대해 설명하거나 pandas의 기초적인 내용을 훑는 부분은 건너뛰고 너무너무 그리웠던 시계열부터 읽기 시작했다.

시계열만 보면 반가워서 꼬리흔드는 강아지가 된다.

이유는 모르겠지만 학기중에 시계열 강의 들었던게 정말 뿌듯하고 좋은 기억으로 남아있어서가 아닐까 추측하고있다.

그리고 시간이 되면 나중에 다시 앞부분을 훑을 생각이다.

파이썬을 처음 접하는 사람들에게는 시계열 전에 다루고 있는 numpy나 pandas에 대한 설명이 꼭 필요하다고 생각한다.

특히 파이썬이 어떤 원리와 구조로 돌아가는지 아는 것과 tuple, list, dictionary에 대해서는 확실하게 정리하고 시작하는게 정말정말 중요하다.

처음 파이썬을 다루기 시작했을 때 도대체 이 함수에는 왜 list가 적용이 안되는지, tuple하고 차이가 뭐길래 이건 되고 이건 안되는지 머리가 터질 뻔 했기 때문이다.

사실 아직도 가끔 헷갈려서 구글링을 꼭꼭 하게되는데 조만간 시간을 내서 이 책과 함께 한번 정리하는 시간을 가져야 겠다.

이전에 강의에서 시계열 분석을 했을 때는 SAS를 이용해서 그래프와 표를 뽑아봤기 때문에 파이썬으로 작업하는 것은 거의 처음이다.

이번에 코드를 작성하고 실행해보면서 SAS가 드럽고 치사하지만 얼마나 편리하고 단순한지 알게 되었다.

파이썬의 경우는 내가 이것저것 조절하고 정리해서 함수에 값을 전달하는 것 처럼 고려할 게 많은 반면 SAS는 어느정도 알아서 사전작업을 해주었기 때문이다.

그래도 파이썬으로 데이터 전처리부터 시작하다보니까 아 이때 이렇게 했었지 싶으면서 또 신나기 시작했다.

timestamp를 이용해서 series를 나누는 것 까지는 이해를 했고 슬슬 그래프가 나오겠지? 하면서 들떠있었다.

근데 날짜 오프셋을 처음 봤을 때 육성으로 "와 이게 뭐냐"라는 말이 절로 튀어나왔다.

그동안 해본 시계열은 진짜 아무것도 아닌가 싶었다.

시간대를 다루고 연산하고 분기 다루고 와! 정말! 이게뭐야!

샘플링 따라하고 있으면서도 이게 뭔가.. 싶고 갑자기 전공책 꺼내서 뒤적거려봤다.

또 확실히 느꼈다.

이론을 기반으로한 전공책의 실습은 그저 이론의 한가지 경우를 보여주고 있을 뿐이고 오렐리에서 시계열을 구현하는 실습은 정말 도화지에 스케치하고 테두리그리고 채색하고.. SAS가 대신 해주었던 생략된 과정들을 전반적으로 직접 코딩하게 된다는 걸..

정말 간만에 머리쓰니까 재미있었고 생각보다 난이도가 꽤 있어서 도전정신이 고개를 번쩍 들었다.

15장의 데이터 분석 예제는 더 재밌었다.

특히 영화 평점 분석의 경우 내가 실제로 인턴 근무하면서 데이터 전처리까지 작업했던 데이터라 반갑게 느껴졌다.

성별에 따라 선호도 차이가 있는 영화를 뽑아보는 것도 신선한 분석 주제였다.

책에서는 데이터 추출까지만 해봤는데 Tableau에 연결해서 시각화를 진행하거나 파이썬 내부에서 시각화까지 곧 도전해 보고 싶어졌다.

파이썬을 아예 처음 접하는 사람이라면 뒷내용이 버겁게 느껴질 수도 있겠다고 생각했지만, 초반에 기본적인 내용들을 차근차근 따라가다보면 조금 난이도 있는 부분도 무리없이 해낼 수 있지 않을까 하는 생각도 들었다.

 

파이썬 라이브러리를 활용한.jpg

파이썬은 매력적인 언어입니다, 1991년 처음 발표된 이래 펄, 루비 같은 인기있는 언어가 되었습니다. 특히 최근 몇년사이에 레일즈(루비), 장고(파이썬) 같은 다양한 웹 프레임워크로 웹사이트를 만들면서 파이썬과 루비는 큰 인기를 얻었습니다. 이처럼 파이썬은 다양한 역사적, 문화적 이유로 인해 방대하고 활동적인 과학 계산 컴퓨팅 커뮤니티에서 사용되고 있습니다. 파이써은 데이터 분석과 대화형(인터랙티브) 컴퓨팅, 데이터 시각화에서 자주 사용하는 R, 매트랩, SAS, stata같은 오픈소스나 사용 언어, 도구와 비교해도 뒤지지 않습니다. 최근에는 파이썬 라이브러리 지원이 개선되어 데이터 처리 업무에 두각을 나타내고 있을 정도로 파이썬은 범용적인 프로그램밍 언어일뿐만 아니라 과학 계산용으로도 손색이 없기에 데이터 애플리케이션 개발을 위한 최고의 언어라고도 할 수 있습니다. 

 

제가 이 책을 선택한 이유는 데이터 분석을 평소에 학습하고 싶었으며 파이썬을 자주 접했었기 때문에 데이터 분석 학습을 시작할때 좀더 이해하기 편하게 파이썬으로 접할 수 있기 때문입니다.

 

이 책의 특성은 파이썬을 처음 접하는 초보자를 위해 딱 필요한 만큼의 파이썬 언어의 기본을 포함하고 있으며 파이썬 데이터 분석 라이브러리인 pandas 외에도 주피터, NumPy, matplotlib, 등 파이썬으로 데이터 분석 작업을 한다면 반드시 마주치게 되는 다양한 도구도 차근차근 안내하고 있기 때문입니다.

 

요즘 대기업에서는 바이러스 프로그램이나 보안사고 사후관리를 위해 데이터 분석을 할 수 있는 인원을 자체적으로 보유하고 있으며 많이 채용하고 있는 추세입니다. 바이러스 프로그램을 분석함으로써 어떠한 기능을 하는지, 어떠한 피해가 발생했는지, 발생할 수 있는지 분석하고 추측하여 보안사고 피해규모를 줄일 수 있습니다. 그렇기 때문에 대기업 뿐만 아니라 사이버 수사대, 한국인터넷진흥원같은 공공기관에서도 많이 선호하고 채용하고 있습니다. 따라서 데이터 분석을 학습할 수 있다면 개발자라면 개발하는 것에 큰 도움이 될것이고 그외에도 IT관련 직종인 사람들도 알고 있으면은 자신의 직무에 많은 도움이 될것입니다.

 

구성

Chapter 1: 시작하기 전에

Chapter 2: 파이썬 언어의기본, IPython, 주피터 노트북

Chapter 3: 내장 자료구조, 함수, 파일

Chapter 4: NumPy 기본: 배열과 벡터 연산

Chapter 5: pandas

Chapter 6: 데이터 로딩과 저장, 파일 형식

Chapter 7: 데이터 정체 및 준비

Chapter 8: 데이터 준비하기: 조인, 병합, 변형

Chapter 9: 그래프와 시각화

Chapter 10: 데이터 집계와 그룹 연산

Chapter 11: 시계열

Chapter 12: 고급 pandas

Chapter 13: 파이썬 모델링 라이브러리

Chapter 14: 데이터 분석 예제

APPENDIX A: 고급 NumPy

APPENDIX B: IPython 시스템 더 알아보기

 

파트별로 나누어 봤을때 1장은 파이썬 필수 라이브러리 소개와 기본 환경 세팅방법에 대해 설명하고 있고 2~5장은 내장 자료구조 및 함수와 각 필수 라이브러리에 대해, 6~11장은 각종 데이터 분석 방법에 대해, 12~13장은 pandas를이용하여 데이터 분석을 하는방법에 대해, 14장은 각종 예제를 통해 실습하는 방법에 대해 설명하고 있습니다.

 

개인적인 생각으로 학습은 파이썬 또는 데이터 분석을 1부터 시작해야하는 시니어이신 분들께서는 1장부터 시작하시면 좋을것 같고 어느정도 경험이 있으신 분들(파이썬을 사용하여 개발 2년차~)은 5장까지는 가볍게 읽으시면서 자료구조, 함수, 파일등을 학습하신 다음 6장부터 시작하시면 좋을듯 싶습니다. 그리고 현재 파이썬에 대해 지식이 어느정도 풍부하시거나 현직에서 사용하시면서 데이터 분석을 학습하시는 분들(3년차~) 역시 6장부터 시작하시면 좋을듯 싶습니다.(6장부터 핵심적인 내용이네요) 그리고 APPENDIX A, B는 다들 한번씩은 읽는것을 추천합니다.

 

그리고 개인적으로 약간의 단점이 내용구성부분에서 기초적인 자료구조 부분이 구성의 40%정도를 차지하고 실습부분이 1장으로 구성되어 있는데 자료구조 부분을 핵심내용 부분만 추려서 2장정도로 내용을 좀더 간단히 구성하고 실습 부분이 좀더 많았으면 더 좋았을것 같다는 아쉬움이 있습니다.

 

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




KakaoTalk_20210917_191856536.jpg

 

 

 

이 책을 본 순간 처음 드는 느낌, '와 두껍다'. 무려 700 페이지에 육박하는 도서였습니다. 책 두께가 두꺼운 만큼, 내용도 많다는 의미겠지요. 반면에 어려운 내용을 잘 풀어서 설명해서 처음 접근하는 사람이 그나마 덜 부담스럽게 느낄 수 있는 책이라고도 볼 수 있습니다. 이 책은 바로 그런 책이라는 생각이 듭니다.

책의 작가인 웨스 맥키니는 pandas 프로젝트를 시작한 사람입니다. 데이터 분석에 관한 책이면서, 파이썬 라이브러리를 활용하는 것이라고 제목에 나타나있지만, 실은 책의 대부분의 내용은 pandas 에 대한 내용으로, pandas 설명서라고 불러도 과언이 아닐 듯 합니다. 어느 책에서나 대체로 그러하듯이, 초반에는 예제를 사용하기 위한 환경과 기초 개념에 대한 설명이 있습니다. 4장에 이르러서 numpy에 대한 기본 내용을 다룹니다. 이후 5장부터 12장까지는 pandas 사용법에 대한 내용입니다. 데이터 분석에 pandas 라이브러리가 얼마나 큰 비중을 차지하고 있는지 알 수 있는 단적인 내용입니다. 하지만, 그 뒤에 13장에서는 Patsy, statsmodels, scikit-learn 과 같은 모델링 라이브러리를 사용하는 방법과 14장에서 데이터 분석도 다루고 있기 떼문에, 데이터 분석이라는 분야에서 필요한 부분을 폭넓게 다루고 있다고도 생각합니다. 또 appendix에서는 앞에서 기본만 다룬 numpy를 좀 더 심층있게 다루고 있고, IPython 사용법도 다루고 있기 때문에 데이터 분야의 개발을 담당하는 사람에게는 실용적인 책일 것입니다.

개인적으로는 파이썬을 접할 기회가 적어서, 다른 기술 문서의 코드를 보면서, 대략 이러하게 진행되는구나 정도만 파악했는데, 파이썬 기초를 다루고 있고, 개념을 간단 명료하게 잘 설명해줘서, 그 뒤에 이어지는 numpy나 pandas 사용 코드를 보는데도 상당히 도움이 되었습니다. 특히 슬라이싱과 값 분리하기 등과 같은 개념은 pandas의 기본 자료형인 Series와 DataFrame을 이용하는 코드에서는 필수적으로 이해해야 하는 내용인데, 미리 잘 파악하게 해둬서 도움이 많이 되었습니다.

pandas 는 알아갈수록 놀라운 라이브러리인 것 같습니다. 복잡한 데이터 형태를 많이 다뤄보지 않은 이유도 있겠지만, 테이블 형태의 데이터를 이렇게 다양한 방식으로 처리할 수 있는지, 또 이렇게 간단히 해낼 수 있는지 경이롭습니다. 데이터을 생성하고, 검색하고, 연산하고, 필터링하고, ... 그것도 좋은 성능으로 해내니, 인기가 많은 이유겠지요.

KakaoTalk_20210917_191818771_01.jpg

데이터를 다루는 외부 자료나 툴과의 연동도 간단하게 할 수 있는 것도 마음에 듭니다. csv이나 JSON 같은 형태는 많이 사용하고 있어서 기본일 수는 있겠지만, 엑셀이나 외부의 데이터베이스, 웹 API까지 연동이 된다니 지원하는 편의성이 감탄스럽습니다.

압도하는 책의 내용량으로 아직 완독을 하진 못했지만, 앞으로 이어질 흥미롭고 놀라울 내용이 기대가 됩니다. 진입 장벽을 느낄 수 있는 데이터 분석이라는 분야에 시발점으로 삼을 수 있는 좋은 책을 만난 것 같습니다. 그리고, 이제는 너무나 인기 분야가 되어 버린 AI 에서도 소양이 될 지식을 전달해 줄 수 있는 훌륭한 책입니다.

 

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

 



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

 

책 표지 사진

지금까지 리뷰한 책들 중에서 파이썬 책이 절반 정도 되는것 같다.

그 중에 상당수는 초급자를 위한 책이 아니었다.

이번 책도 마찬가지로 초급자를 위한 책은 아닌것 같다.

 

시작부터 데이터 분석에 많이 사용하는 라이브러리들을 소개 하고 있다.

그리고 설치에 관한 내용과 기초에 관한 내용을 잠시 다루고나서는 바로 자료구조, 함수, 파일로 넘어간다.

따라서 파이썬을 처음 접하는 사람에게는 맞지 않는 책이다.

 

개인적으로 요즘 로그 분석등에 자주 파이썬을 활용하고 있다.

급할땐 별로 찾아 보지 않고 생각 나는데로 필요한 기능을 구현해서 사용하고 있는데

이런 책을 볼때 마다 '아...numpy 사용해서 해봐야 하는데...' 라는 생각을 한다.

pandas도 마찬가지고...

 

이 책은 numpy, pandas를 시작으로 여러곳에서 많이 사용하는 xml, json등을 다루는 방법등 다양한 데이터를 다루는 내용으로 초반부를 시작한다.

이후 시각화에 대한 내용을 거쳐서 나에게 중요한 시계열 데이터 다루는 방법에 대해서도 상세하게 소개하고 있다.

 

후반으로 넘어 가면 pandas나 numpy의 고급 내용에 대해서 다루는데 이 부분들은 좀더 시간을 내어 차근 차근 살펴 보면 좋을것 같다.(나에게...)

 

전반적으로 각 라이브러리 자체에 대해서 상세하게 다루고 있는 편인듯 해서 어느정도 프로그래밍 지식이 있다면 필요한 기능을 구현할때 참고 서적으로 상당히 도움이 되리라 생각 한다.

사실 뭔가 구현하려고 필요한 것들을 검색 해 보면 짤막하고 동일한 내용이 담긴 블로그들이 많이 나와서 검색하다 지칠때가 있는데 이런 책이 옆에 있다면 많은 도움이 될것 같다.



0. 하~ 이 책 신기하네~, 기본이라 말하는 다른 책과 다른 결을 가지는 기본서~

 

여러 권의 데이터 분석 책들을 리뷰해 왔지만, 처음에 이 책에서 받은 첫인상은 "어! 두껍네~"였습니다. 다른 책들과 두께 차이가 상당히 많아 그 구성이 매우 궁금했습니다. 저의 첫 짐작은 "다양한 사례를 많은가?" 정도로 생각했는데, 그 예상은 보기좋게 빗나갔습니다.

오~ 이 책 생각보다 섬세하네~, 132페이지를 할애해 Python을 설명한다~

최근 파이썬은 프로그래밍 언어로 많은 각광을 받고 있습니다. R이라는 언어로 데이터 분석을 다루는 책들도 있지만, 실제 그 대세를 체감할 정도로 파이썬은 많은 주목을 받고 있습니다. 하지만, 보통 데이터 분석 입문서들은 데이터 분석을 중심으로 하기 때문에, 파이썬을 데이터 분석에 활용하기 위한 준비과정을 세심하게 설명하진 않습니다.

하지만 이 책은 다른 책들과 다르게 기초적인 내용을 상세히 다뤄줍니다. 즉 이 책은 데이터 분석을 위한 아주 기본이 되는 라이브러리를 설명하는 것, 그 자체가 이 책의 존재 이유입니다.

 

Chapter 1 : 시작하기 전에

Chapter 2 : 파이썬의 기본

Chapter 3 : 내장 자료구조, 함수, 파일

 

사진1.jpg

 

아~ 데이터 분석을 위한 파이썬을 설명하기 위한 책이구나~ 그리고 처음 3장을 넘어 4장의 Numpy, 5장의 Pandas의 설명을 보면서, 저자는 이 책을 통해 독자에게 무엇을 설명하고자 하는지 확실하게 알 수 있었습니다.

이 책은 다른 책들과 다르게 분석에 대한 테크닉을 가르치려하지 않습니다. 즉 이 책은 분석알고리즘을 이해시키고 설명하는데 책을 할애하지 않고, 데이터 분석시, 프로그래밍 측면에서 기초가 되는 라이브러리를 정확하게 사용할 수 있도록 그 사용법을 전달하는데 집중합니다. 이 책은 아래와 같이 보다 깊이 있는 라이브러리를 사용하는 방법에 대해서 설명합니다. 그림과 충분한 예시를 통해 라이브러리를 사용하는 방법에 대해서 구체적으로 설명하려 노력합니다.

 

1. Numpy, Pandas, matplotlib에 대해서 잘 알고 싶으셩? 이 책이 답이다.

 

이 책은 지금까지의 데이터 분석과 다르게, 데이터 분석을 수행할 때 필요한 Numpy, Pandas, matplotlib 등의 대표적인 Python 라이브러리를 다양한 예제를 통해서 깊게 설명합니다. 또한 Note와 Caution을 통해서 라이브러리를 공부하면서 학습하는 예시 및 실행에 독자가 꼭 짚어바야하는 사항들을 섬세하게 부연으로 설명하고 있습니다.

그렇다면 이 책이 다른 책과 다른 것은 어떤 것일까요? 다른 데이터 분석책들도 numpy, pandas를 설명하는데 구지 뭐 이렇게 까지 자세하게 알야야하는 것이 또 있을까요? 사실 저는 이 책을 통해 기존의 책들과 꼭 한번 병행해서 봐야할 분명한 점을 확인할 수 있었습니다. 즉 numpy를 통해 강의에서는 종종 언급하던 선형대수, 난수생성 방법 등 실제 데이터분석에서 필요한 numpy의 기능을 보통의 데이터 분석에서는 별도로 설명하지 않고, 분석알고리즘의 설명에서 다루곤 합니다. 하지만 이러한 부분에서, 예시를 다룰 때 문제가 되는 부분은 이게 Numpy를 통해 이뤄지는 것인지 아니면, 데이터 분석 알고리즘 내에서 이뤄지는 것인지 헛갈릴 경우가 왕왕 발생하기 때문이죠. 그래서 알고리즘의 라이브러리를 이용할 때 numpy의 고유 기능임에도 불구하고, 알고리즘 상에서 제공하는 것으로 착각하는 경우가 생깊니다. 사실 대부분의 알고리즘을 실행하기 위한 전처리의 골자는 numpy나, pandas가 다 처리해 주는 것인데도 말이죠.

또한 이 책의 말미에는 고급 Padas의 기능을 부가적으로 설명합니다. 최근 시간이 갈수록 Pandas는 고급 사용자를 위한 깊이 있는 기능들을 추가되고 있는데, 하나의 장을 통해서 에서는 고급 분석자들이 사용하는 몇가지 고급기능들을 소개합니다.

 

*Categorical Data : Pandas 메모리 사용량을 줄이고 선응을 개선할 수 있는 방법으로 Pandas는 정수 기반의 범주형 데이터를 표현할 수 있는 Categorical행이라고 하는 특수한 데이터 형을 가지고 있습니다. .

*GroupBy : Pandas는 Series와 DataFrame에서 groupby 메서들을 사용할 수 있으며, apply 메서들을 이용해 dataFrame을 변환하는 방법을 가지고 있습니다. transform이라는 내장 메서드를 이용하면 apply메서드와 유사하게 동작하면서도 사용할 수 있는 함수의 종류에 대해 좀 더 많은 조건을 포함시킬 수 있습니다.

 

이처럼 데이터 분석에서 필요한 다양한 데이터 전처리 기법을 numpy, pandas를 중심으로 설명하여, 보다 능수능란하게 데이터 분석을 할 수 있도록 내용을 풍부하게 담으려 저자는 노력했습니다.

 

사진2.jpg

 

2. 2판에서 달리진 점

 

이 책은 이미 [1판]을 통해 이미 독자들에게 소개를 되어 왔습니다. 그러나 최근 파이썬의 문법이 업데이터되어 소스코드의 변경될 필요가 있었고, 아래의 내용으로 [2판]이 갱신 되었습니다.

 

- 파이썬 튜토리얼을 포함한 모든 코드를 파이썬 3.6 기반으로 수정했다.

- 파이썬 설치 과정을 아나콘다 파이썬 배포판과 몇몇 필수 파이썬 패키지 기준으로 설명했다.

- pandas 라이브러리 버전을 2017년 최신 버전으로 갱신 했다.

- pandas 고급 사용법과 사용팁을 담은 새장을 추가했다.

- statsmodels와 scikit-learn 라이브러리 사용에 대한 간략한 소개를 했다.

 

저자는 2판을 통해서, 새로운 독자들이 좀 더 쉽게 접근할 수 있도록 1판의 내용 중 많은 부분을 새롭게 구성하였습니다. 현재 이책은 중국어, 프랑스어, 독일어, 일본어, 한국어 그리고 러시아로 번역되어 있으며, padans 프로젝트를 통해 계속적으로 업그레이드 되는 기능들을 소개하고자 저자는 2판을 통해, 이러한 기능들을 소개하고자 하였습니다.

 

3. 맺음말

 

사실 이 책은 앞서 설명한 바와 같이 다른 책과는 다르게 좀 더 파이썬을 기반한 데이터 처리 부분을 매우 상세히 다루고 있습니다. 어떤 부분에서는 "그래서 뭐~" 라고 이야기 할 수 있지만, 사실은 이런 부분이야 말로 고수를 판가름 하는 가장 중요한 내용이라는 점을 여러분들은 꼭 간과하지 않기를 바랍니다. 사실 저도 리뷰를 작성하면서, 많은 독자들이 "난 데이터 분석을 하고 싶고, 알고리즘을 배우고 싶어~"라면서 이책에 대해 크게 관심으로 가지고 있지 않지 않을까 걱정이 됩니다. 그런 분들에게 전 이런 이야기를 하고 싶습니다.

욕심을 부리면 꼭 탈이 나듯, 물리적으로 시간을 들여 학습해야할 과정을 돌아가서 뒤늦게 후회를 하지 않길 빕니다. ~

공부는 항상 넘어가야 할 산이 있기 마련입니다. 이 부분은 제대로 공부하지 않고 넘어가게 될 경우, 응용에서 많은 어려움을 가질 수 있으며, 정석으로 코드를 수립한 고수 코드를 해석하고 이해하는데 많은 부분 어려움을 느낄 수 있습니다. 첫 술에 배부를 수 없듯, 이 책을 그 과정을 이해하는데 이 사용하고, 설명한 내용을 마스터 한다면, 고수가 가는 길의 큰 길잡이가 될 것이라 생각이 듭니다.

간만에 기본서를 접해서, 리뷰하는게 좀처럼 쉽지는 않았지만, 제가 보고 느낀점을 충분히 설명해 보았습니다.

 



데이터 분석은 요즘 개인적으로 가장 관심있어 하며 스터디하고 있는 분야입니다. 그래서 차근차근 파이썬도 공부하고 있었고, 통계에 대한 스터디도 틈틈이 하고 있었습니다. 최근에 몇몇 선생님들과 온라인으로 모여 데이터 분석 스터디도 막 시작하면서 데이터 분석에 관련한 자료와 책들을 수집(?)하고 있는 중입니다.

 

어떤 책이 좋을까를 고민하며 찾아보던 중 이 책 "파이썬 라이브러리를 활용한 데이터 분석 (2판) (웨스 맥키니 지음, 한빛미디어)"를 만나게 되었고 단숨에 신나게 읽었습니다.

참고로 저는 파이썬은 기본적인 문법은 아는 수준이고, 데이터 분석을 위한 라이브러리는 거의 다뤄보지 않은 데이터 분석 초보 단계입니다.

 

 

KakaoTalk_20201026_182656883.jpg

 

O'REILLY 출판사에서 나온 책의 표지는 다 이런 스타일이죠? 저 녀석은 누구일까요? 괜히 궁금합니다.

 

 

 

KakaoTalk_20201026_185147283.jpg

 

별로 중요한 건 아니지만 이 친구는 붓꼬리나무두더지(Ptilocercus lowii)라고 합니다. 이 책의 표지로 쓰인 이유는 잘 모르겠네요^^

 

이 책의 저자인 웨스 맥키니(Wes McKinney)는 소프트웨어 개발자이자 기업가인데, 특별히 pandas를 개발한 이력을 가지고 있는 분입니다. 그만큼 판다스의 구조를 누구보다 잘 알고 계시겠죠!

2012년에 1판이 나왔었고 현대의 버전에 맞게 2판이 새로 개정되어 출판되었습니다. 이 책은 파이썬의 기본기부터 시작해서 데이터 분석 필수 라이브러리인 NumPy, pandas, matplotlib, SciPy, scikit-learn, statsmodels 등을 폭넓게 다룹니다.

1장과 2장에서는 이 책에서 다루는 내용들이 무엇인지를 간략하게 언급하고, 파이썬을 소개합니다. 이어 3장까지 파이썬의 기초 문법을 속성으로 복습해 나갑니다. 100여 페이지 정도를 할애해서 파이썬의 기본기를 확인하는데, 처음 파이썬을 다루는 분들도 이 내용으로 어느 정도 파이썬을 이해할 수는 있습니다. 하지만 파이썬 기본 개념서는 아니기 때문에 파이썬을 아얘 처음 다루는 분들이라면 파이썬 기초 책을 먼저 공부하시는 게 좋을 것 같습니다. 아무래도 조금은 딱딱하거든요. 파이선 기초 문법을 전달하는게 이 책의 본래 목적은 아니니깐요^^

파이썬 기초를 공부하려면 이런 책들이 좋아요.

 

 

파이썬기초책추천1.jpg

 

 

 


 

4장에서는 NumPy를, 5장에서는 Pandas에 다룹니다. 6장에서는 데이터를 불러오고 저장하는 기술을, 7장과 8장에서는 데이터를 분석하기 위한 전처리(데이터 정제, 준비, 조인, 병합, 변형) 기술을 다룹니다.

 

 

KakaoTalk_20201026_191526608.jpg

 

9장에서는 matplotlib을 활용하여 그래프를 시각화는 것에 대하여 다루고 10장부터는 보다 고급 데이터 분석 기술을을 안내합니다. 시계열과 고급 pandas, 그리고 statsmodels, scikit-learn 같은 파이썬 모델링 라이브러리들 까지 폭 넓에 소개합니다.

 

 

KakaoTalk_20201026_191637438.jpg

 

마지막으로 14장에서는 지금까지 배운 내용들을 총 정리하여 표준 시간대 세어보기, 영화 평점 데이터, 신생아 이름 유행 분석, 미국 농무부 영양소 정보 데이터, 연방선거관리위원회 데이터베이스 들을 활용하여 실제적인 데이터를 활용한 데이터 분석 연습을 합니다. 이 부분이 가장 흥미롭고 재미있었던 부분이었습니다. 학교에서 만나는 중고등 학생들과 실제 데이터를 활용한 간단한 데이터 분석에 대한 경험을 주는 수업을 만들어 보고 싶은데 많은 통찰을 얻을 수 있었습니다.

 

KakaoTalk_20201026_191906473.jpg

 

 


 

추천합니다

 

파이썬의 기본에서부터 다양한 데이터 분석 라이브러리들을 접해볼 수 있어서 데이터 분석을 처음 접하는 분들에게는 아주 좋은 책이라고 생각합니다. 그리고 실제로 제공되는 데이터를 활용해서 분석을 해보는 경험은 다른 데이터들을 활용해보는 데에 대한 방법을 안내해줄 수 있어서 그런 경험을 원한다면 꼭 만나보면 좋은 책이라고 생각합니다.

파이썬부터 데이터 분석까지 한권으로 끝낼 수 있는 효과적인 책! 이라고 정리하고 싶습니다.

 

 


 

이 리뷰는 한빛미디어 출판사의 "나는 리뷰어다" 활동을 통해 도서를 제공받고 작성한 후기입니다. 리뷰어 활동과는 별개로 개인 스터디를 위해 꼼꼼하게 읽었고 느낀 이야기를 솔직하게 적었습니다.



 

 

파이썬라이브러리를 활용한 데이터분석_크기조정.jpg

 

 

 

이 책의 제목에는 '데이터 분석' 이 들어가 있지만 데이터 분석 방법론이 아니라 데이터 분석에 사용하는 도구에 집중한다.

 

책이 친절하게 1~3 챕터까지 이 도구에 대한 설명을 해준다.

챕터 1~3에서 python이라는 기본도구를 설명해주는데 여기서는 말 그대로 기본도구 설명이기 때문에 좀 더 심화 과정을 원하는 경우 부록을 참고하도록 해두었다.

 

데이터 분석에 대한 첫 도입부는 챕터 6 부터라고 볼 수 있다.

그전까지는 마치 게임에서 튜토리얼을 진행하는 느낌이었다면 챕터6에서는 초보자 마을에 보내진 느낌이다.

그 초보자의 마을에서는 데이터 분석을 하기 위한 데이터 다루는 도구를 알려준다.

데이터 처리, 변환 등을 할 수 있게 도와주는 도구에 대한 설명을 듣고 활용할 수 있도록 해준다. (챕터 7~8)

 

그 이후 도구를 얻고 이 도구를 빛내줄 이팩트가 필요하지 않겠는가. 시각화다.

엑셀에서도 단순 자료 표에서 그 자료를 원그래프, 막대그래프로 보여주지 않는가.

python에서도 위의 도구들을 활용하여 시각적으로 보여줄 수 있다. 그 기술을 쓸 수 있도록 해주는 도구를 챕터 9에서 볼 수 있다.

 

데이터 분석을 해보고 싶은 사람들이 어렵지 않게 간단하게 해보고 싶을 경우 참고하면 괜찮을 것 같다.



 

KakaoTalk_20201025_215953373222.jpg

#나는리뷰어다 #한빛미디어

지은이 : 웨스 맥키니

파이썬을 이용해서 데이터 분석 작업을 하길 원하는 독자에게 다양한 분야의 사례를 통해 단계적으로 파이썬과 데이터 분석에 익숙해지도록 안내하는 책이다.

파이썬을 처음 접하는 독자를 위해 파이썬 언어의 기본을 포함하고 있다.

이 책은 NumPy, pandas, matplotlib, IPython, Jupyter 등 다양한 파이썬 라이브러리를 사용해서 효과적으로 데이터를 분석할 수 있게 알여준다.

영화 평점, 연대별 이름 통계 자료, 미 대선 데이터베이스 자료 등 실사례를 따라 하면 공부할 수 있게 되어 있다.

코드예제 : https://github.com/wesm/pydata-book

 

 

 

빅데이터 시대를 살면서 데이터 분석은 필수!

그럼 어떤 툴로 데이터를 모으고 분석해야 하나...

고민하며 검색을 해보면...

눈에 가장 많이 들어오는 툴(?)이 '파이썬' 입니다

(엄밀히 말하면 프로그래밍 언어네요ㅎㅎ).

프로그래밍 언어 쪽은 한빛미디어의 오렐리 시리즈가 유명한데요..

이 책의 장점은 방대한 분량(664페이지)에 걸맞게 Jupyter, Matplotib, NumPyI, Python 등 다양한 파이썬 라이브러리를 활용한 효과적인 데이터 분석 방법을 배울 수 있어 좋습니다.  설명도 쉽고 실사례를 따라하며 익힐 수 있어 독학으로 공부하는데 큰 도움이 될 것 같습니다.

데이터 분석의 달인 되고픈 그대요~ 이 책으로 한번 도전해 보세요.

단, 내용이 방대하기 때문에 공부 계획을 세워 도전하시기를 권합니다.

 

KakaoTalk_20201025_194758616.jpg

 

 

 

(파이썬 라이브러리를 활용한 데이터 분석 2판)

 

목차

  • 시작하기 전에
  • IPython, 주피터 노트북
  • 내장 자료구조, 함수, 파일
  • NumPy 기본 : 배열과 벡터 연산
  • pandas 시작하기
  • 데이터 로딩과 저장, 파일 형식
  • 데이터 정제 및 준비
  • 데이터 준비하기 : 조인, 병합, 변형
  • 그래프 시각화
  • 데이터 집계와 그룹 연산
  • 시계열
  • 고급 pandas
  • 파이썬 모델링 라이브러리
  • 데이터 분석 예제
  • [Appendix]고급 Numpy

목차만 봐도 데이터 분석에 대한 기본적인 내용은 배울 수 있는 책이다.

역자가 MIT에서 수학 전공했고, 2008년부터 python으로 금융분석 했다면, 적어도 내가 알고있다고 생각하는 내용들 보다는 더 많은 것들을 알고, 익혔을 것이라 생각이 든다.

 

전체적인 내용을 보았을 때, 막 python을 시작하고 싶어하는 사람이라면 기초를 익히기에 굉장히 좋은 책같다.

최근 언니가 python을 시작해보고 싶다고 그랬는데,

python을 데이터 분석 목적으로 공부를 시작한다고 한다면 이 책도 같이 보라고 권유해야겠다.

 

물론 데이터분석을 할 때 여기에 나온 numpy, pandas 등의 것들만을 사용해서 하기는 어렵겠지만

그냥 kaggle같은 곳에 있는 간단한 문제들 풀면서 기초 공부하기엔 딱 적당한 책이다.

vkdlTjs.jpg

 

제목은 파이썬 라이브러리를 활용한 데이터 분석이지만 데이터를 어떻게 정제하고 활용할지에 대한 내용이 조금 더 주를 이루고 있다.

 

파이썬을 시작한 지 얼마 안 된 입장에서 초반에 파이썬에 대한 설명이 있고, Numpy나 Pandas에 대한 설명도 꽤 자세해서 읽는데 큰 어려움은 없었다.

 

책에서는 Ipython을 이용해 예제를 다루고 있고 Jupyter Notebook을 이용해 시작화 데이터, 코드 등의 결과물을 보여주고 있다.

 

책은 크게 3 파트로 나눌 수 있다.

 

첫 파트는 파이썬에 대한 기본적인 것들. 분석 도구(Numpy, Pandas)에 대한 소개 및 설명

 

두 번째 파트는 분석 도구들을 활용해서 데이터를 정제하고 시각화하는 방법을 소개하고

 

마지막 마트는 데이터를 분석하는 심화 기법을 소개하고 데이터를 활용할 수 있는 방법을 알려준다.

 

뒤로 갈수록 파이썬뿐만 아니라 데이터를 분석하고 활용하는 내용 자체가 어려워져서 데이터 분석에 대한 기본 이해도 필요하다.

 

KakaoTalk_Photo_2020-10-24-18-52-38.jpeg

 

책 소개

  • 책 제목 : Python for Data Analysis (파이썬 라이브러리를 활용한 데이터 분석)
    글쓴이 : 웨스 맥키니
    옮김 : 김영근
    출판사 : 한빛미디어
    2판 4쇄 : 2020년 08월 01일

책의 특징

  • 초점 : 이 책은 파이썬을 처음 접하는 사람도 데이터 분석을 쉽게 접할 수 있도록 파이썬의 기초부터 고급 활용까지 차근히 밟아나갈 수 있도록 한다.

  • 설명 방식 : 실제 사례를 이용하거나 각 장마다 간단한 예제를 포함하여 독자들이 실사례를 쉽게 접하도록 하고 차근히 활용해 나갈 수 있도록 돕는다.

    • 파이썬 언어의 기본 문법부터 자료구조, 자주 쓰이는 패키지들에 대한 자세한 설명들과 예시들 또한 포함하고 있다.
    • 세부적으로 단계를 기술하여 해당 기능 하나하나를 어떻게 활용하면 될지를 간단한 예제로 알 수 있다.
    • 파이썬을 활용한 데이터 분석에 필요한 프로그래밍 실력을 다질 수 있도록 한다.
    • 여러 데이터 분석 예시 프로젝트를 다루고 있다. (영화 평점, 이름 통계, 선거 데이터 등)
  • 제공하는 사이트 : 이 책은 동영상 강의 및 깃허브를 제공한다.


추천 대상

해당 책은 데이터 분석을 처음 접하는 사람에게 적합하다. 그리고 파이썬을 모르더라도 따라갈 수 있도록 약 150 페이지 이상동안 기본 문법과 활용 패키지들을 설명한다. 그리고 파이썬을 아는 사람이더라도 데이터 분석에서 사용하는 문법들에 대해 더 자세히 기술하고 있으니 좋은 정리본이 될 것이다.

또한, 책에서 데이터 분석 예시 프로젝트들 및 사용 분야에 대한 자세한 기술을 하고 있으니 활용에 대한 구상 및 응용에 도움이 될 수 있도록 기술하고 있으며, 처음 접하는 초보자들에게 부담이 되지 않는 난이도부터 고급 활용까지 접하기에 더할나위 없이 좋은 과정이 될 것이다.

즉, 파이썬과 데이터 분석을 처음 접하는 사람부터 익숙한 사람에게 까지 해당 책은 기본적인 정리본부터 활용본 까지의 역할을 할 수 있을 것이다.

책의 한줄평

파이썬부터 데이터 분석까지 한권으로 끝내기

 

학교다닐때부터 문과였기는 했지만 통계와 데이터분석에 관심이 아주 많았다. 대학원을 가서도 사회과학을 했지만 내 손에는 통계와 데이터분석관련 책이 계속 놓여있었다. 회사에 들어가서도 영업부서부터 시작했지만 그당시 한창 뜨고 있었던 빅데이터, 기계학습이 유행하면서 지금은 기업의 영업활동에서 가장 중요한 것이 고객 데이터 분석이 되었다. 처음에는 SPSS, SAS, Minitab, Stata 같은 툴을 만지작 거리다가 대학원에 들어가서는 R을 접하면서 더욱 더 데이터 분석에 맛을 들였다. 회사에서는 잠시 영업일을 하다가 기획과 마케팅 파트로 넘어오면서 프로그래밍 언어에 관심을 기울이게 되었는데 대체로 전공자가 아닌 사람이 시작할 수 있는 언어가 파이썬이라고 해서 파이썬을 배웠다. 그런데 내가 꾸준히 관심을 가졌던 데이터분석을 파이썬으로 할 수 있지 않을까해서 선택하게 된 책이 이책이다. 파이썬은 오픈소스방식으로 라이브러리가 무한하다. 지금도 늘어나고 있다. 그래서 기존 통계나 수학 소프트웨어에사 사용할수있는 기능들이 파이썬 라이브러리로 개발되고 있다. 이책에서 나오는 NumPy, pandas, matplotlib, IPython, Jupiter 등도 데이터 분석을 용이하게 해주는 라이브러리이다. 책에서는 이러한 라이브러리의 소개와 기본 주요기능들을 소개하고 실행하게 도와준다. 그리고 예전에 통계학 수업을 들을때 중요하게 이야기들었던 EDA(탐색적 데이터 분석)을 정교하게 할 수 있는 데이터 정제, 변형, 조인, 병합을 통해 정말 Raw data에서 활용가능한 데이터 형식으로 가공할 수 있는 방법을 알려준다. 또한 데이터 집계와 그룹화된 연산을 통해 분석 툴이나 라이브러리를 사용할 수 있도록 데이터 디자인을 가이드해준다. 역시 이책의 정수는 말미에 있는 데이터 예제이다. 미국 국무부 데이터, 영화 평점 데이터, 신생아 이름, 미국 농무부 영양소 정보, 미국 선관위 데이터베이스 등 재미있고 다양한 분석의 예제를 통해 저자의 분석방향을 살펴볼 수 있다. Appendix는 고급 Numpy와 IPython 시스템에 대해서 나오는데 좀더 깊은 이해가 필요한 독자에게 좋을 것 같다. 파이썬은 초심자의 언어로 알려져있지만 내생각에는 최고의 확장성을 가지는 프로그래밍언어가 더 맞는 것 같다. 이책이 지향하는 것처럼 파이썬은 접착제처럼 쓰이는 연결자로서의 언어가 아닐까 생각해본다.

 

이 책은 구판이 1.5만부 이상 팔린 베스트셀러다.

 

이유는 간단하다. 파이썬에서 데이터를 다루는 라이브러리는 pandas가 가장 유명한데, 책의 저자인 웨스 맥키니가 바로 그 pandas의 창시자이기 때문이다. 

 

pandas에 대해서라면 누구보다도 잘 설명할 수 있는 사람이 초보자를 위해 기초부터 알려주니 내용이 좋을 수밖에 없다. '왜 이런 함수를 이렇게 사용해야 하는지', '어떤 생각에서 이런 형태로 동작하도록 설계했는지'에 대한 저자의 경험과 생각 역시 본문에 잘 녹아져 있어서 이해에 도움이 된다. 

 

또한 이 책은 pandas 학습서에만 그치지 않는다. 도서 제목처럼, [데이터 분석]이 주제이기 때문에, IPython & Jupyter notebook, numpy, pandas, matplotlib 등 파이썬을 활용한 데이터 분석에 필요한 주요 라이브러리를 제대로 다루고 있다. 특히 저자의 numpy 에 대한 설명은 간결하고 뛰어나다. pandas 자체의 내부 핵심 기반이 numpy 이기 때문에 그럴만도 하지만 말이다.

 

이 책의 1판은 pandas가 아직 초기 버전일 때 출간되었기 때문에, 지금 pandas를 다루는 사람들에게는 조금 안 맞는 부분이 있었다. 예를 들면, 구판에는 데이터 선택 시 .ix 메서드를 자주 사용했었다. 하지만 pandas의 최신 버전들은 .ix 메서드를 더 이상 지원하지 않을 예정이라, 개정판에서는 .ix가 아니라 .iloc/.loc 로 사용하도록 추천하고 있다. 

 

pandas에 대한 설명을 2017년 버전 이후 기준으로 변경했다는 점 외에, 다른 변경사항 중에는 다음 내용이 주로 눈에 띈다. 

 

- Python을 3.6 버전 기반으로 변경

- pandas의 고급 사용법과 활용팁을 담은 내용 추가

- statsmodels와 scikit-learn 라이브러리 사용에 대한 간략한 소개 추가

 

이 책은 일단 두께가 두툼하다. 그만큼 내용도 충실하다. 파이썬와 그 생태계를 이용해서 데이터 분석을 시작하는 사람에게 언제나 첫손에 꼽히는 추천도서였는데 더 좋아졌다. 

 

국내·외를 막론하고 데이터 분석을 하기 위해 numpy와 pandas를 배우고 싶은 사람에게 언제나 첫손에 꼽히는 교과서급 책으로, 파이썬으로 데이터 분석을 시작하기 위한 모든 것이 담겨있다고 생각한다.

주변에서 판다스 책을 추천해 달라는 얘기를 들으면 이 책을 가장 우선으로 추천하곤 했다. 제목은 파이썬 라이브러리를 활용한 데이터 분석이지만 이 책 만큼 판다스를 잘 다루고 있는 책은 드물 것이다. 왜냐면 이 책은 판다스 라이브러리를 개발한 웨스매키니가 직접 쓴 책이기 때문이다.

수학을 전공한 웨스매키니는 R에서 영향을 받아 판다스 라이브러리를 만들었다고 한다. 또, 증권사에서 퀀트로 일했기 때문에 행과열로 된 데이터 뿐만 아니라 시계열 데이터를 다루기도 좋다. 그리고 내부적으로 Numpy 라이브러리를 수치계산 라이브러리로 사용하고 있기 때문에 계산도 빠른 편이다. 데이터분석, 전처리, 피처엔지니어링, 시각화, 시계열 분석, 업무 자동화 등 판다스는 다양한 분야에서 활용되고 있다.

또, 비전공자나 비개발자들이 프로그래밍을 배우고 싶다고 뭐부터 배우면 좋을지 물어보면 판다스 라이브러리를 가장 많이 추천한다.

엑셀은 전공이나 도메인에 무관하게 사용되고 있다. 그런데 엑셀의 치명적인 단점이 대용량 데이터를 다루기에 적합하지 않다는 것이다. 100만줄 이상의 엑셀파일을 불러온 경험이 있는 사람이라 면 그 데이터를 로드하는 것도 힘들지만 컬럼하나를 추가하거나 간단한 수식을 추가하기 위해서도 우리의 많은 인내심을 요구하게 된다.

그런데 같은 파일을 판다스로 읽어온다면 내 컴퓨터의 메모리가 허락하는 한도내에서 데이터를 로드해서 전처리를 자유롭게 할 수 있고 파이썬 스크립트를 작성해 놓으면 매달 혹은 매주, 매일 >반복되는 업무에서 파일위치만 변경해 주면 반복된 작업을 엑셀만을 사용하는 것보다 간편하게 처리할 수 있다.

이 책의 초판이 출판된지 시간이 많이 지나서 2판이 나왔으면 좋겠다는 생각을 종종 해왔는데 이렇게 2판이 출판되었을 때 반가운 마음이 들었다.

또, 이 책은 판다스 뿐만 아니라 책의 초반부를 파이썬 기초 문법에 할애하고 있다. 이 책을 통해 파이썬을 처음 배우는 초심자라면 꼭 필요한 파이썬 기초도 함께 배울 수 있다.

책 표지 - 만약 판다곰이 판다스와 관계가 있다면 표지가 판다곰이지 않았을까 싶지만, 판다곰과 Pandas는 아무런 상관이 없기 때문에 표지에도 판다곰이 등장하지 않는다.

2판이 나오며 개선된 내용이 정리되어 있다.

목차 - bit.ly의 usa.gov 데이터로 실사례를 분석해 볼 수 있다. 타임존, 운영체제별 데이터를 집계해보는 예제가 있다.

MovieLens의 데이터는 영화 평점 데이터를 텍스트와 함께 분석해 본다.

신생아 이름은 1800년대부터 태어난 신생아의 이름을 분석해 보며, 특정 이름이 특정 시기에 유행을 하고 있다는 것을 볼 수 있다.

이 외에도 미국 농무부의 영양소 정보라든지, 연방선거관리 위원회 데이터베이스를 볼 수 있다.

matplotlib을 pandas 를 통해 더 간단하게 사용할 수 있는 코드를 안내한다.

유행하는 이름의 트랜드를 시각화로 확인해 볼 수 있다.

그리고 아래의 URL에 소스코드도 모두 공개가 되어 있다. 2판이 업데이트 되며, 2nd-edition 이라는 브랜치가 추가되었다.

아래의 링크에서 colab으로 직접 실습이 가능하다. https://colab.research.google.com/github/wesm/pydata-book/blob/2nd-edition/ch02.ipynb

github 소스코드는 아래 링크에서 확인해 볼 수 있다. wesm/pydata-book: Materials and IPython notebooks for “Python for Data Analysis” by Wes McKinney, published by O’Reilly Media

  •  

이번에 리뷰할 책은 파이썬 라이브러리를 활용한 데이터 분석(http://www.hanbit.co.kr/store/books/look.php?p_code=B6417848794)입니다.
데이터 분석으로 유명한 pandas 라이브러리를 개발한 웨스 맥키니가 쓴 책의 최신 개정판입니다. (쓸데는 없지만 구판은 표지의 두더지 방향이 우측을 향하고 있습니다. ^^)


몇년전부터 머신러닝 딥러닝등 인공지능에 관한 관심이 뜨겁습니다.
훈련 데이터로 가져와 학습을 시키고, 테스트 데이터로 예측을 하고, 시각화하고 결과를 분석하는식으로 동작하며
주로 python, numpy, pandas등과 머신러닝 라이브러리등을 이용해서 이루어집니다.

이런 데이타는 그냥 주어지는게 아니라 사전에 잘 정제하는 작업이 필요합니다.
행과 열을 바꾼다던지 일부를 조작한다든지 빈값을 채운다던지, 
대량의 데이타에서 SQL다루듯이 조건에 맞는 필터링도 필요합니다.
원하는 데이타는 어떤 컬럼을 통해서 구해지는지 그런 컬럼이 데이타에 없다면 어떤 컬럼들을 조합이나 생성해서 만들어낼지
에 대한 생각도 필요합니다.

이 책은 650페이지정도 분량으로 해당 내용들을 다룹니다. 

- 설치 ipython, jupyter notebook사용법등에서는 자동완성이나 매직명령어
- 파이썬 기초: 리스트, 튜플, 사전(딕셔너리) ,날짜 함수 등등
- numpy/pandas: 
- 데이터 로딩 저장
- 데이터 조입 병합 변형/ 집계 그룹연산
- 시각화 matplotlib
- 시계열데이터
- 데이터 분석 예제


주로 다루는 데이타가 리스트나 테이블 형태라
연산결과를 전/후 데이타를 보여주느라 페이지수가 늘어나긴 하지만 이해에는 확실히 도움이 되네요.

DB를 통하지 않고서도 pandas로도 꽤 많은 집합연산등을 할 수 있다는걸 알게되었고,
빈 값이나 더미데이타를 제거하고, 테이블형태를 입맛에 맞게 잘라붙이거나 합치거나 행렬을 전치등을 꽤 자유롭게 해서
전처리 작업에 꽤 유용할 거 같습니다.
 
초반부 파이썬 기본문법에 어느정도 익숙해지셨다면 14장 데이터분석예제를 먼저 대략 살펴보시면 분석을 위해 무슨 무슨 단계가
필요하다는 것을 파악한 후에 다시 앞으로 와서 관련 기능 및 사용법등을 익히면 좀 더 잘 받아들일수 있을거 같습니다. 그리고 axis(축)이나 브로드캐스팅등은 부록에 그림으로 설명을 먼저 읽어보시면 도움이 될 거 같습니다.

날짜계산시 타임존관련 내용은 다국어버전도 고려한다면 주의해야 할 내용인거 같고, 
데이터분석 예제는 영화 평점, 이름 통계,  선거 데이터 등 실사례들을 사용한 챕터인데
주어진 데이타로 원하는 결과에 대한 답을 얻기 위해  단계별로 어떤 정보를 어떻게 조합해 만들어내는지 많은 도움이 된 파트였습니다.
이 챕터 분량이 더 많았으면 좋겠다는 생각이 듭니다.

 

한빛미디어의 <나는 리뷰어다> 6월 이벤트에 당첨되어 작성한 리뷰입니다.


[한줄평]

파이썬의 데이터 분석 라이브러리를 딥하게 공부하는 분들에게 추천합니다.


[목차구성]

이책은 총 CHAPTER 14로 구성되어 있습니다.


1장: 시작하기 전에

-> 왜 데이터 분석에 파이썬을 사용해야 하는지 필수 라이브러리는 어떤것이 있는지 기본적인 파이썬 환경 세팅을 설명 하고 있습니다.

2장: 파이썬 언어의 기본, IPython, 주피터 노트북

-> 파이썬 인터프리터 개념과 IPython, 주피터 노트북의 기초에 대해서 배울수 있습니다.

3장: 내장 자료구조, 함수, 파일

-> 파이썬의 자료구조와 순차 자료형, 함수, 파일과 운영체제의 개념을 배웁니다.

4~5장 : NumPy, pandas

-> NumPy의 기본 사용법과 pandas의 핵심 기능을 배웁니다.

6~8장 : 데이터 로딩과 저장, 데이터 정제 및 준비하기

-> 텍스트 파일에서 데이터를 읽고 쓰는 방법과 문자열 다루는 방법, 데이터 합치기 등을 배울수 있습니다.

9~11장 : 그래프와 시각화, 데이터 집계, 시계열

-> matplotlib API사용법과 pandas로 그래프 그리기, 피벗테이블과 교차 알림표 만들기, 시계열 기초를 배울수 있습니다.

12~14장 : 고급 pandas, 파이썬 모델링 라이브러리, 데이터 분석 예제

-> pandas의 고급 GroupBy 사용법과 메서드 연결 기법을 배우고, 파이썬 모델링 라이브러리의 소개, 데이터 분석 실전 예제를 배웁니다.

 

[2판의 주요 변경 사항]

모든 코드를 파이썬 3.6기반으로 수정

아나콘다 파이썬 배포판과 몇몇 필수 파이썬 패키지로 설치

최신 pandas 라이브러리 사용

pandas 고급 사용법과 사용팁 추가

statsmodels와 scikit-learn 라이브러리 소개

 

[서평]

이책은 데이터분석을 하기전에 필요한 선행 학습에 대해서 진철하게 잘 설명하고 있습니다.

보통 데이터 분석 책들을 보면 데이터 분석에 중점을 두고 설명을 하는데 이책은 처음 파이썬을 시작한다는 가정하게 설명을 하고 있습니다. 그래서 파이썬을의 기초 문법 부터 데이터 분석에 필요한 라이브러리(NumPy, pandas, matplotlib, IPython, Jupyter, SciPy, scikit-learn, statsmodels)등을 자세하게 소개하고 있다.  기본적인 파이썬 기능에 대해 설명 후 데이터 수집, 처리,분석,시각화 리포팅까지 잘 설명해주고 있다. 파이썬의 pandas, Numpy, ipython, 주피터 노트북 등 라이브러리를 활용하여 일반적으로 처리하기 힘든 데이터를 손쉽게 처리하고자 하는 개발자 혹은 사이언티스트에게 어떻게 사용해야 하는지 알려주는 좋은 교재가 될것이라 생각합니다.


PS. 파이썬의 어떤 책보다 NumPy를 자세하게 설명하고 고급 기능 까지 잘 알려주는 책입니다. NumPy를 좀더 깊게 공부하고 싶으면 일독하기를 권합니다.

발매 시작된지 2달이 채 되지 않은 신선한 책인 '파이썬 라이브러리를 활용한 데이터 분석'

이 책은 데이터를 분석하는 다양하고 기본적인 방법을 파이썬을 통해 소개한다.

1장에서는 데이터 분석을 위해 파이썬의 어떠한 도구를 사용하는지 설명한다. 그 도구에는 NumPy, pandas, matplotlib, IPython, Jupyter, SciPy, scikit-learn, statsmodels 등등이 있다.

이 책은 파이썬 인터프리터인 IPython를 주로 사용하여 예제를 다루고, 코드,텍스트,데이터 시각화를 비롯한 출력을 대화형으로 구성할 수 있는 Jupyter notebook로 결과물을 보여준다.

하여, 2장에서는 이 IPython과 Jupyter notebook이 무엇인지 설명하고, 2장과 3장에 파이썬의 기본 문법을 다룬다. 기본 문법의 예제는 IPython을 사용한다.

4장에서는 산술 계산을 위한 가장 중요한 라이브러리인 NumPy의 사용법을 소개하고, 5장에서는 고수준의 자료구조와 빠르고 쉽게 사용할 수 있는 데이터 분석 도구인 pandas를 소개한다.

이제 데이터 분석을 위한 도구를 알았다면, 6장에서 9장까지는 그 분석 도구를 이용하여, 데이터에 접근하는 방법과 데이터를 정제하고, 분석하고, 시각화하는 방법을 소개한다.

10장부터는 개념이 조금 어려워지는데, 데이터 집합을 자연스럽게 나누고 요약할 수 있는 방법을 제공하고, 시간상의 여러 지점을 관측하거나 측정할 수 있는 데이터를 활용하여 분석하는 방법을 제공한다. 그리고 pandas의 고급 기술과 파이썬 모델링 기법을 소개한다.

마지막으로 14장은 이 책에서 소개한 도구, 방법론, 기술들을 통해 데이터를 분석하는 예제를 보여준다.

데이터를 분석해보고 싶은 분이라면 적극 추천하는 책이다.

 

 

개인적으로 구판을 가지고 있었는데, 이번에 신판을 리뷰할 기회가 생겨서 다시 한 번 읽어보게 되었다.


우선 이 책의 정체성을 짚고 넘어가야 할 것 같다.  

번역판 제목은 "파이썬 라이브러리를 활용한 데이터 분석(2판)-영화 평점, 이름 통계, 선거 데이터 등 실사례 사용"이다. 또한, 책의 뒤 표지에 보면 "빅데이터 분석에 관한 가장 완벽한 교재"라고 되어있다. 내용을 자세히 안 보고 제목과 표지만 보면 데이터 분석을 알려주는 책 같지만 실제로 읽어보면 내용이 좀 다르게 진행된다.  

원서제목은 ["Python for Data Analysis, 2nd Edition : Data Wrangling with Pandas, NumPy, and IPython"]이다. 부제가 "Data Wrangling"인데, 데이터 분석에 종사하지 않다 보니 정확히 어떻게 번역하는지 모르겠지만 "데이터 전처리"라고 이해하고 있다.  

이 책은 파이썬과 Pandas 등의 도구를 사용하여 데이터를 가공 정제하는 데 초점이 맞추어져 있다. 실사례를 통해 분석업무를 알려주는 책은 아니니 구매하고자 하시는 분들은 꼭 유의하시길 바란다.  


원서제목처럼 Pandas 와 NumPy를 놓고 생각하면 아주 잘 만들어진 책이라고 생각한다.  

번역도 잘 되어있고, 1판에서 넘어오면서 용어들을 다듬어서 더 읽기 좋아졌다. 또한, 구판에서 예제코드를 2단 문서형태로 처리했었는데 이를 1단 문서 형태로 변경하였다. 이전 대비 페이지가 조금 늘어나겠지만, 가독성은 훨씬 좋아졌다.  

파이썬을 처음 사용해보는 데이터분석가 이거나, 어느 정도 파이썬을 다룰 줄 알면서 데이터 분석을 시작하고자 하는 사람을 위한 책이다. R 등 다른 도구로 분석업무를 해온 사람에게는 파이썬을 통해 기존업무를 어떻게 처리할 수 있는지 이해할 수 있으며, 처음으로 데이터 분석에 대해 배우고자 하는 사람들에게는 데이터 분석에 대해 이해하는 데 도움이 되리라 생각한다. 특히, Numpy와 Pandas를 자세히 소개하며 실제 사용할 수 있는 수준으로 발전해 가는 데 많은 도움이 된다. Pandas를 계속 사용할 사람이라면 옆에 두고 수시로 보게 되지 않을까 생각한다.


표지비교 코드비교


구판과 비교해 본다면... 혹시 구판을 가지고 있다면 신판은 필요 없을 것 같다.  

내용이 크게 변한 것이 없으며(예제코드도 거의 동일), 좀 더 이해하기 좋도록 배치만 다시 했다. 구판에서 "CH.11-금융 어플리케이션"부분이 삭제되고 "CH.12-고급 Pandas","CH.13-파이썬 모델링 라이브러리"부분이 추가되었는데, 그렇게 많은 분량은 아니다. 특히 CH.13의 경우 따로 공부해야 할 방대한 주제를 20페이지 정도 소개만 한 수준이므로 이를 위해 신판을 또 구매할 필요는 없을 것 같다. 이 외에 IPython(Jupyter) 와 Pandas 변경사항이 조금 반영된 정도이다. 구판(1판 수정보완판)이 파이썬2 기준으로 만들어졌지만, 구판에서도 파이썬3 기준으로 실습하는 데 큰 문제가 없었기 때문에 파이썬3이 대세가 된 것을 알게 된 것 이상의 의미는 없는 것 같다.  

2판이 크게 바뀐점이 없다는것은 그만큼 구판의 내용이 좋았다는 의미겠지만, 신판에서 새로운 내용을 기대한 사람에게는 다소 아쉬움이 남는다.



파이썬과 머신러닝에 한참 빠져있다보니 여러 오픈소스를 살펴볼 수 있었는데요. 간혹 난해한 코드를 만나는 경우가 분명 있었습니다. 어떤 의미로 사용된 코드인지 이해하기 위해서 별도의 의사코드를 작성해서 진행을 해보기도 하고, 특히 matplotlib같은 경우에는 매번 당장 사용할 때가 아니면 그 사용법을 익혀두기 어려웠습니다. 그러던중 좋은 기회로 한빛미디어에서 출간된 Python for Data Analysis를 만나게 되었습니다. 1판이 무려 만 오천여부가 팔렸다고 하니 이미 그 수치에서 이 책은 신뢰할 수 있겠습니다.

 

파이썬 라이브러리를 활용한 데이터 분석 2판

 

책의 초판은 2012년에 출간되었고 당시에는 파이썬의 열풍이 지금처럼 대단하지 않았었죠. 이미 상당한 시간이 흘러 머신러닝과 빅데이터에 힘입어 Python은 이제 대세 language로 자리잡았다고 해도 과언이 아닐텐데요, 이 책은 이제 Python3를 바탕으로 아주 사소한 문법부터 시작해서 jupyter notebook의 핵심 이론인 Ipython, 그리고 데이터 분석에 필요한 matplotlib, pandas, numpy까지 거침없이 다뤄나갑니다. 

 

아마도 위에서 언급한 라이브러리가 개별적으로 포스팅되어 있는 블로그 등은 꽤 많을텐데 이렇게 한 권으로 제대로 다루는 것은 아마도 Python for Data Analysis 이 책이 유일하지 않을까 싶습니다. 그만큼 꽤 고급진 내용까지 잘 다루고 있습니다. 데이터를 분석한다는것은 사실 그 안에 데이터를 불러와서, 정제하고 가공하는 등 꽤 많은 준비 과정이 필요한데 이 책에서 다뤄지는 예제는 이미 그런 부분까지 세심하게 실습하고 있습니다. 라이브러리의 기초적인 활용법까지 고급 스킬까지 한방에 정리하고 싶다면 이 책은 좋은 선택지가 될 것이라고 믿습니다.

 

마무리

여기에 곁들여서 이야기하자면 pandas는 단순히 로컬 데이터 분석에서만 끝나는 것이 아니라 다양한 클라우드와도 밀접한 연관이 있습니다. 이미 Google Cloud에 BigQuery와는 상당히 밀접하게 동작하고 있기 때문에 요즘같은 클라우드 시대에 데이터를 분석하는 롤을 갖고 있는 사람에게 Pandas는 필수적인 라이브러리입니다. 그렇기에 이 책을 통해 좋은 인사이트를 얻으실 수 있기를 바랍니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
파이썬 라이브러리를 활용한 데이터 분석(2판)
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
파이썬 라이브러리를 활용한 데이터 분석(2판)
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
파이썬 라이브러리를 활용한 데이터 분석(2판)
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실