Pandas로 하는 데이터 과학 2/e [파이썬 통계 분석 라이브러리]
- 원서명Learning pandas - Second Edition: High-performance data manipulation and analysis in Python (ISBN 9781787123137)
- 지은이마이클 헤이트(Michael Heydt)
- 옮긴이이태상
- ISBN : 9791161752136
- 35,000원
- 2018년 09월 21일 펴냄
- 페이퍼백 | 472쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 데이터 과학
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
파이썬 기반의 통계 패키지인 Pandas는 고성능의 데이터 구조를 제공함으로써 데이터 탐색과 분석을 매우 용이하게 해주는, 데이터 분석가의 효율적인 도구다. 이 책은 Pandas 라이브러리의 완전한 기능을 배움으로써 효율적인 데이터 조작과 분석의 길로 안내한다. 데이터 분석과 반복 프로세스에 대한 기초부터 데이터 모델링, 원격 데이터 접근, 수치 해석과 통계 분석, 데이터 인덱싱과 집계 분석, 그리고 통계 데이터의 시각화와 금융 분석까지 수행하는 과정을 통해 데이터 과학의 핵심 단계를 설명한다.
이 책에서 다루는 내용
■ 데이터 분석가와 과학자가 데이터를 수집하고 파악하는 방식의 이해
■ 데이터 분석의 처음부터 끝까지 지원하는 Pandas의 활용
■ 시리즈와 데이터 프레임을 사용한 단변량과 다변량 데이터 표현
■ 데이터의 분할과 분리, 여러 출처의 데이터 조합, 그룹화, 집계 방법
■ 파일, 데이터베이스, 웹 서비스 등의 외부 데이터 접근
■ 시계열 데이터의 표현, 조작, 다양한 의미 파악
■ 통계 정보의 시각화
■ Pandas를 이용한 다양한 금융 데이터 표현과 분석
이 책의 대상 독자
Pandas를 이용한 데이터 분석에 빠져보고 싶은 데이터 과학자, 데이터 분석가, 파이썬 프로그래머 또는 데이터 분석에 관심이 있는 누구에게나 적합하다. 통계와 프로그래밍에 대한 약간의 지식이 있다면 더욱 도움이 되겠지만, 반드시 필요한 조건은 아니다. Pandas에 대한 경험 역시 필요하지 않다.
이 책의 구성
1장, ‘Pandas와 데이터 분석’에서는 Pandas의 주요 특징을 소개한다. 1장의 목적은 통계와 데이터 과학의 맥락에서 Pandas의 역할을 제시하는 것이다. 즉, 데이터 과학과 관련한 여러 개념을 알아보고 이를 Pandas가 어떻게 지원하는지 설명한다. 이로써 데이터 과학과 데이터 과학 프로세스와 관련한 이후의 각 장을 공부할 준비를 갖춘다.
2장, ‘Pandas의 설치와 가동’에서는 Pandas를 다운로드해 설치하는 방법과 몇 가지 기본 개념을 알아본다. 또한 iPython과 주피터 노트북(Jupyter Notebook)을 사용해 실습을 진행하는 모습을 보여준다.
3장, ‘Series로 단변량 데이터 표현’에서는 인덱스를 갖는 1차원의 데이터 표현 방법인 Pandas의 Series로 작업을 시작한다. Series 객체를 만드는 방법과 그 안의 데이터를 조작하는 방법을 공부할 것이며, 추가로 인덱싱, 데이터 정렬, 슬라이싱 등에 대해 알아본다.
4장, ‘DataFrame으로 다변량 데이터 표현’에서는 인덱스를 갖는 2차원의 데이터 표현 방법인 Pandas의 DataFrame에 대해 알아본다. DataFrame 객체를 만드는 방법과 정적 데이터셋의 사용 방법, 특정 칼럼이나 로우를 선택하는 방법 등을 배운다.
5장, ‘DataFrame 구조 다루기’에서는 4장에서 한 걸음 더 나아가 DataFrame으로 좀 복잡한 작업을 수행해본다. 구체적으로는 칼럼이나 로우를 추가, 교체, 삭제해보며, DataFrame 안의 데이터를 조작해본다.
6장, ‘데이터 인덱싱’에서는 Pandas의 인덱스 활용 방법을 자세히 알아본다. 특히 각 인덱스의 유형과 설정, 계층형 인덱스를 다루는 방법을 배운다.
7장, ‘범주형 데이터’에서는 Categorical을 사용해 Pandas의 범주를 다루는 방법을 알아본다.
8장, ‘수치 해석과 통계 기법’에서는 기본적인 산술 연산은 물론 기술 통계, 이산화, 롤링 윈도우, 무작위 표집 등 다양한 통계 작업을 수행해본다.
9장, ‘데이터 접근’에서는 외부로부터 데이터를 로딩해 Series나 DataFrame으로 저장하는 방법을 배운다. 또한 파일, HTTP 서버, 데이터베이스, 웹 서비스 등 다양한 장소의 데이터에 접근하는 방법을 알아본다. CSV, HTML, JSON, HDF5 형식의 데이터를 처리하는 방법도 배운다.
10장, ‘데이터 정돈’에서는 Pandas가 제공하는 다양한 도구를 사용해 지저분하거나 누락된 데이터를 분석에 유용한 형태로 관리하는 방법을 공부한다.
11장, ‘데이터의 조합, 연관, 재형성’에서는 복수의 Pandas 객체로부터 데이터를 접합하거나 병합하는 다양한 기법을 배운다.
12장, ‘데이터 집계’에서는 데이터의 그룹화와 집계 분석에 대해 알아본다. Pandas에서는 이를 분할-적용-재조합 패턴이라고 하는데, 이 패턴을 사용해 여러 방법으로 데이터 그룹화를 수행해보고 집계 함수를 적용해 데이터를 처리해본다.
13장, ‘시계열 모델링’에서는 시계열 데이터에 관해 알아본다. Pandas가 제공하는 방대한 기능을 사용해 시계열 데이터를 다루고 분석하는 방법을 공부한다.
14장, ‘시각화’에서는 matplotlib을 중심으로 Pandas 데이터를 시각화하는 방법을 알아본다. 막대그래프, 히스토그램, 박스-수염 그래프, 영역 그래프, 산점도, 커널 밀도 추정 차트, 히트맵 등 일반적인 여러 차트를 통해 금융 데이터를 표현하는 방법을 알아본다.
15장, ‘과거 주가 분석’에서는 기본적인 금융 분석 기법을 알아본다. 구글 파이낸스(Google Finance)로부터 데이터를 가져와 수익률, 이동 평균, 변동성 등 여러 주제를 다루며, 그런 금융 개념에 시각화를 적용하는 방법도 알아본다.
목차
목차
- 1장. pandas와 데이터 분석
- pandas 소개
- 데이터 조작, 분석, 과학과 pandas
- 데이터 조작
- 데이터 분석
- 데이터 과학
- pandas의 적정 영역
- 데이터 분석 프로세스
- 프로세스
- 이 책에서 각 단계의 관련 위치
- pandas 여행을 위한 데이터와 분석의 개념
- 데이터 유형
- 변수
- 시계열 데이터
- 분석과 통계의 기초 개념
- 기타 유용한 파이썬 라이브러리
- 수학과 과학: NumPy와 SciPy
- 통계 분석: StatsModels
- 머신 러닝: scikit-learn
- 스토캐스틱 베이지안 모델링: PyMC
- 데이터 시각화: matplotlib과 seaborn
- 정리
- 2장. pandas의 설치와 가동
- 아나콘다 설치
- 아이파이썬과 주피터 노트북
- 아이파이썬
- 주피터 노트북
- pandas Series와 데이터 프레임 소개
- pandas의 임포트
- pandas Series
- pandas DataFrame
- 데이터 프레임으로 파일 데이터 로딩
- 시각화
- 정리
- 3장. Series로 단변량 데이터 표현
- pandas 설정
- Series 생성
- 파이썬 리스트와 딕셔너리를 사용한 생성
- NumPy 함수를 사용한 생성
- 스칼라 값을 사용한 생성
- .index와 .values 속성
- Series의 크기와 형태
- 생성 시 인덱스 지정
- head, tail, take
- 레이블과 포지션으로 값 가져오기
- [] 연산자와 .ix[] 속성을 사용하는 레이블 검색
- .iloc[]을 사용하는 명시적 포지션 검색
- .loc[]을 사용하는 명시적 레이블 검색
- 서브셋으로 Series 슬라이싱
- 인덱스 레이블을 통한 정렬
- 불리언 선택
- 리인덱싱
- 시리즈 즉석 변경
- 정리
- 4장. DataFrame으로 단변량 데이터 표현
- pandas 설정
- 데이터 프레임 객체 생성
- NumPy 함수로 데이터 프레임 만들기
- 파이썬 딕셔너리와 pandas Series로 DataFrame 만들기
- CSV로 DataFrame 만들기
- DataFrame 안의 데이터 접근
- DataFrame의 칼럼 선택
- 데이터 프레임의 로우 선택
- .at[]이나 .iat[]을 사용해 레이블이나 위치로 스칼라 검색
- [] 연산자를 사용한 슬라이싱
- 불리언 선택을 통한 로우 선택
- 로우와 칼럼의 동시 선택
- 정리
- 5장. DataFrame 구조 다루기
- pandas 설정
- 칼럼명 변경
- []와 .insert()를 사용한 칼럼 추가
- 확장을 통한 칼럼 추가
- 접합을 통한 칼럼 추가
- 칼럼 재배열
- 칼럼의 콘텐츠 교체
- 칼럼 삭제
- 새 로우 추가
- 로우 접합
- 확장을 통한 로우 추가 및 교체
- 을 .drop() 사용한 로우 삭제
- 불리언 선택을 통한 로우 삭제
- 슬라이싱을 통한 로우 삭제
- 정리
- 6장. 데이터 인덱싱
- pandas 설정
- 인덱스의 중요성
- 인덱스 유형
- 기본 유형: Index
- 정수 유형: Int64Index와 RangeIndex
- 부동소수점 유형: Float64Index
- 이산 간격 유형: IntervalIndex
- 범주형: CategoricalIndex
- 날짜 및 시간 유형: DatetimeIndex
- 기간 유형: PeriodIndex
- 인덱스로 작업
- 시리즈와 데이터 프레임에서의 인덱스 생성과 사용
- 인덱스로 값 선택
- 인덱스 사이의 데이터 이동
- pandas 객체의 리인덱싱
- 계층형 인덱스
- 정리
- 7장. 범주형 데이터
- pandas 설정
- Categorical 생성
- 범주 이름 변경
- 새 범주 추가
- 범주 삭제
- 미사용 범주 삭제
- 범주 설정
- Categorical의 기술 통계 정보
- 성적 데이터 가공
- 정리
- 8장. 수치 해석과 통계 기법
- pandas 설정
- 수치 계산법
- DataFrame과 Series의 산술 연산
- 값의 개수 세기
- 고윳값과 그 개수
- 최솟값과 최댓값 찾기
- n개 최솟값과 n개 최댓값 찾기
- 누적 값 계산
- pandas 객체의 통계 처리
- 약식 기술 통계
- 중심 경향성 측정: 평균, 중위수, 최빈수
- 분산과 표준 편차 계산
- 공분산과 상관관계
- 이산화와 분위수
- 값 순위 계산
- 각 표본의 변동률 계산
- 롤링 윈도우 작업
- 무작위 표집
- 정리
- 9장. 데이터 접근
- pandas 설정
- CSV, 텍스트, 테이블 형식의 데이터
- CSV 데이터셋 예제 확인
- CSV를 데이터 프레임으로 로딩
- CSV 로딩 시 인덱스 칼럼 지정
- 데이터 타입의 추론과 지정
- 칼럼명 지정
- 특정 칼럼의 로딩
- 데이터 프레임을 CSV 파일로 저장
- 필드 구분 데이터로 작업
- 필드 구분 데이터의 다양한 형식 다루기
- 엑셀 데이터의 읽기와 쓰기
- JSON 파일의 읽기와 쓰기
- HTML 데이터 읽기
- HDF5 파일의 읽기와 쓰기
- 웹을 통한 CSV 데이터 접근
- 데이터베이스의 읽기와 쓰기
- 원격 데이터 서비스로부터 데이터 읽기
- 야후!와 구글로부터 주식 데이터 읽기
- 구글 파이낸스의 옵션 데이터 가져오기
- 세인트루이스 연방준비은행의 FRED 데이터 가져오기
- 케네스 프렌치 데이터에 접근
- 세계은행의 데이터 읽기
- 정리
- 10장. 데이터 정돈
- pandas 설정
- 데이터 정돈이란?
- 결측 데이터 다루기
- NaN 값 찾기
- 결측 데이터의 판별과 삭제
- 수학 연산에서의 NaN 처리 방식
- 결측 데이터 보강
- 결측 값 채우기
- 인덱스 레이블을 사용한 채우기
- 보간법을 사용한 결측 값 채우기
- 중복 데이터 다루기
- 데이터 변형
- 데이터를 다른 인덱스에 매핑
- 데이터 대체
- 데이터 변형을 위한 함수 적용
- 정리
도서 오류 신고
정오표
정오표
[p.111 : 7행]
데카르트 곱 artesian product
->
데카르트 곱 Cartesian product
[p.162 : 1행]
1,000번의 루프를 총 세 차례 실행하고, 그중 가장 빠른 경우가 루프당 평균 0.00535초, 즉 1,000번의 루프가 총 5.35초가 걸렸음을 알 수 있다.
->
1,000번의 루프를 실행하고, 그중 가장 빠른 세 루프의 평균이 0.000535초다. 다시 말해 이 구문을 1,000번 실행하는 데 걸리는 시간이 0.535초 정도임을 알 수 있다.
[p.181 : 아래에서 1행]
새성
->
생성