목차
옮긴이의 말 = 4
지은이의 말 = 5
코드 예제 활용 = 6
표지 설명 = 7
CHAPTER 1 시작하기 전에
1.1 이 책은? = 21
1.2 왜 데이터 분석을 위한 파이썬인가? = 22
1.2.1 접착제처럼 사용하는 파이썬 = 22
1.2.2 한 가지 언어만 사용 = 23
1.2.3 파이썬을 사용하면 안 되는 경우 = 23
1.3 필수 파이썬 라이브러리 = 24
1.3.1 NumPy = 24
1.3.2 pandas = 25
1.3.3 matplotlib = 26
1.3.4 IPython = 26
1.3.5 SciPy = 26
1.4 설치와 설정 = 27
1.4.1 윈도우 = 28
1.4.2 애플 OS X = 30
1.4.3 리눅스 = 32
1.4.4 파이썬 2.x와 파이썬 3.x = 33
1.4.5 통합 개발 환경 = 33
1.5 커뮤니티와 컨퍼런스 = 34
1.6 이 책을 살펴보는 방법 = 35
1.6.1 예제 코드 = 35
1.6.2 예제에 사용된 데이터 = 36
1.6.3 import 컨벤션 = 36
1.6.4 용어 = 36
1.7 감사의 말 = 37
CHAPTER 2 사례 소개
2.1 bit.ly의 1.usa.gov 데이터 = 40
2.1.1 순수 파이썬으로 표준시간대 세어보기 = 42
2.1.2 pandas로 표준시간대 세어보기 = 44
2.2 MovieLens의 영화 평점 데이터 = 51
2.2.1 평점 차이 구하기 = 56
2.3 신생아 이름 = 58
2.3.1 이름 유행 분석 = 64
2.4 맺음말 = 73
CHAPTER 3 IPython 소개
3.1 IPython 기본 = 76
3.1.1 탭 자동 완성 = 77
3.1.2 자기관찰 = 79
3.1.3 %run 명령어 = 81
3.1.4 클립보드에 있는 코드 실행하기 = 82
3.1.5 키보드 단축키 = 84
3.1.6 예외와 트레이스백 = 85
3.1.7 매직 명령어 = 86
3.1.8 Qt 기반의 GUI 콘솔 = 88
3.1.9 Pylab 모드와 Matplolib 통합 = 89
3.2 명령어 히스토리 사용하기 = 90
3.2.1 명령어 검색과 재사용 = 91
3.2.2 입ㆍ출력 변수 = 91
3.2.3 입ㆍ출력 기록하기 = 93
3.3 운영체제와 함께 사용하기 = 93
3.3.1 셸 명령어와 별칭 = 94
3.3.2 디렉터리 북마크 시스템 = 96
3.4 소프트웨어 개발 도구 = 96
3.4.1 인터랙티브 디버거 = 97
3.4.2 코드 시간 측정: %time과 %timeit = 102
3.4.3 기본적인 프로파일링: %prun과 %run -p = 104
3.4.4 함수의 각 줄마다 프로파일링하기 = 107
3.5 IPython HTML 노트북 = 110
3.6 IPython을 사용한 제품 개발을 위한 팁 = 111
3.6.1 모듈 의존성 리로딩하기 = 112
3.6.2 코드 설계 팁 = 113
3.7 IPython 고급 기능 = 115
3.7.1 IPython 친화적인 클래스 만들기 = 115
3.7.2 프로파일과 설정 = 116
3.8 감사의 글 = 117
CHAPTER 4 NumPy 기본: 배열과 벡터 계산
4.1 NumPy ndarray: 다차원 배열 객체 = 120
4.1.1 ndarray 생성 = 121
4.1.2 ndarray의 자료형 = 124
4.1.3 배열과 스칼라 간의 연산 = 126
4.1.4 색인과 슬라이싱 기초 = 127
4.1.5 불리언 색인 = 132
4.1.6 팬시 색인 = 135
4.1.7 배열 전치와 축 바꾸기 = 137
4.2 유니버설 함수 = 139
4.3 배열을 사용한 데이터 처리 = 141
4.3.1 배열연산으로 조건절 표현하기 = 143
4.3.2 수학 메서드와 통계 메서드 = 145
4.3.3 불리언 배열을 위한 메서드 = 147
4.3.4 정렬 = 147
4.3.5 집합 함수 = 149
4.4 배열의 파일 입ㆍ출력 = 150
4.4.1 배열을 바이너리 형식으로 디스크에 저장하기 = 150
4.4.2 텍스트 파일 불러오기와 저장하기 = 151
4.5 선형대수 = 152
4.6 난수 생성 = 154
4.7 계단 오르내리기 예제 = 156
4.7.1 한 번에 계단 오르내리기 시뮬레이션하기 = 157
CHAPTER 5 pandas 시작하기
5.1 pandas 자료 구조 소개 = 162
5.1.1 Series = 162
5.1.2 DataFrame = 167
5.1.3 색인 객체 = 173
5.2 핵심 기능 = 175
5.2.1 재색인 = 176
5.2.2 하나의 로우 또는 칼럼 삭제하기 = 179
5.2.3 색인하기, 선택하기, 거르기 = 180
5.2.4 산술연산과 데이터 정렬 = 184
5.2.5 함수 적용과 매핑 = 188
5.2.6 정렬과 순위 = 190
5.2.7 중복 색인 = 194
5.3 기술통계 계산과 요약 = 195
5.3.1 상관관계와 공분산 = 199
5.3.2 유일 값, 값 세기, 멤버십 = 201
5.4 누락된 데이터 처리하기 = 203
5.4.1 누락된 데이터 골라내기 = 204
5.4.2 누락된 값 채우기 = 206
5.5 계층적 색인 = 209
5.5.1 계층 순서 바꾸고 정렬하기 = 212
5.5.2 단계별 요약통계 = 213
5.5.3 DataFrame의 칼럼 사용하기 = 214
5.6 pandas와 관련된 기타 주제 = 216
5.6.1 정수 색인 = 216
5.6.2 Panel 데이터 = 217
CHAPTER 6 데이터 로딩, 저장, 파일 형식
6.1 텍스트 파일 이용하는 방법 = 221
6.1.1 텍스트 파일 조금씩 읽어오기 = 228
6.1.2 데이터를 텍스트 형식으로 기록하기 = 230
6.1.3 수동으로 구분 형식 처리하기 = 232
6.1.4 JSON 데이터 = 235
6.1.5 XML과 HTML: 웹 내용 긁어오기 = 236
6.2 이진 데이터 형식 = 243
6.2.1 HDF5 형식 사용하기 = 244
6.2.2 마이크로소프트 엑셀 파일에서 데이터 읽어오기 = 245
6.3 HTML, 웹 API와 함께 사용하기 = 245
6.4 데이터베이스와 함께 사용하기 = 248
6.4.1 MongoDB에 데이터 저장하고 불러오기 = 250
CHAPTER 7 데이터 준비하기: 다듬기, 변형, 병합
7.1 데이터 합치기 = 253
7.1.1 데이터베이스 스타일로 DataFrame 합치기 = 254
7.1.2 색인 머지하기 = 259
7.1.3 축 따라 이어붙이기 = 263
7.1.4 겹치는 데이터 합치기 = 268
7.2 재형성과 피벗 = 270
7.2.1 계층적 색인으로 재형성하기 = 270
7.2.2 피버팅으로 데이터 나열 방식 바꾸기 = 273
7.3 데이터 변형 = 275
7.3.1 중복 제거하기 = 275
7.3.2 함수나 매핑 이용해 데이터 변형하기 = 277
7.3.3 값 치환하기 = 279
7.3.4 축 색인 이름 바꾸기 = 280
7.3.5 개별화와 양자화 = 282
7.3.6 특이값 찾아내고 제외하기 = 285
7.3.7 치환과 임의 샘플링 = 287
7.3.8 표시자/더미 변수 = 288
7.4 문자열 다루기 = 291
7.4.1 문자열 객체 메서드 = 292
7.4.2 정규표현식 = 294
7.4.3 pandas의 벡터화된 문자열 함수 = 298
7.5 예제: 미국 농무부 음식 데이터베이스 = 301
CHAPTER 8 도식화와 시각화
8.1 matplotlib API 간략하게 살펴보기 = 310
8.1.1 Figure와 서브플롯 = 311
8.1.2 색상, 마커, 선 스타일 = 316
8.1.3 눈금, 라벨, 범례 = 318
8.1.4 주석과 그림 추가 = 321
8.1.5 그래프를 파일로 저장 = 324
8.1.6 matplotlib 설정 = 325
8.2 pandas에서 그래프 그리기 = 326
8.2.1 선 그래프 = 327
8.2.2 막대 그래프 = 330
8.2.3 히스토그램과 밀도 그래프 = 334
8.2.4 산포도 = 336
8.3 지도 그리기: 아이티 지진 데이터 시각화하기 = 338
8.4 파이썬 시각화 도구 생태계 = 345
8.4.1 Chaco = 346
8.4.2 mayavi = 347
8.4.3 기타 패키지 = 347
8.4.4 시각화 도구의 미래 = 347
CHAPTER 9 데이터 수집과 그룹 연산
9.1 GroupBy 메카닉 = 350
9.1.1 그룹 간 순회하기 = 354
9.1.2 칼럼 또는 칼럼의 일부만 선택하기 = 356
9.1.3 사전과 Series에서 묶기 = 357
9.1.4 함수로 묶기 = 359
9.1.5 색인 단계로 묶기 = 359
9.2 데이터 수집 = 360
9.2.1 칼럼에 여러 가지 함수 적용하기 = 363
9.2.2 색인되지 않은 형태로 집계된 데이터 반환하기 = 366
9.3 그룹별 연산과 변형 = 367
9.3.1 apply: 분리 - 적용 - 병합 = 369
9.3.2 변위치 분석과 버킷 분석 = 372
9.3.3 예제: 그룹에 국한된 값으로 누락된 값 채우기 = 374
9.3.4 예제: 랜덤 표본과 순열 = 376
9.3.5 예제: 그룹 가중 평균과 상관관계 = 378
9.3.6 예제: 그룹 상의 선형 회귀 = 380
9.4 피벗 테이블과 교차일람표 = 381
9.4.1 교차일람표 = 384
9.5 예제: 2012년 연방 선거관리위원회 데이터베이스 = 385
9.5.1 직장 및 피고용별 기부 통계 = 388
9.5.2 기부금액 = 392
9.5.3 주별 기부 통계 = 395
CHAPTER 10 시계열
10.1 날짜, 시간 자료형, 도구 = 400
10.1.1 문자열을 datetime으로 변환하기 = 401
10.2 시계열 기초 = 405
10.2.1 인덱싱, 선택, 부분 선택 = 406
10.2.2 중복된 색인을 갖는 시계열 = 409
10.3 날짜 범위, 빈도, 이동 = 410
10.3.1 날짜 범위 생성하기 = 411
10.3.2 빈도와 날짜 오프셋 = 412
10.3.3 데이터 시프트 = 415
10.4 시간대 다루기 = 418
10.4.1 지역화와 변환 = 419
10.4.2 시간대 고려해 Timestamp 객체 다루기 = 421
10.4.3 다른 시간대 간의 연산 = 422
10.5 기간과 기간 연산 = 423
10.5.1 Period의 빈도 변환 = 425
10.5.2 분기 빈도 = 426
10.5.3 타임스탬프와 기간 서로 변환하기 = 428
10.5.4 배열을 이용해 PeriodIndex 생성하기 = 429
10.6 리샘플링과 빈도 변환 = 431
10.6.1 다운샘플링 = 432
10.6.2 업샘플링과 보간 = 436
10.6.3 기간 리샘플링 = 437
10.7 시계열 그래프 = 439
10.8 이동창 기능 = 442
10.8.1 지수 가중 함수 = 445
10.8.2 이진 이동창 함수 = 446
10.8.3 사용자 정의 이동창 함수 = 448
10.9 성능과 메모리 사용량에 대한 노트 = 448
CHAPTER 11 금융, 경제 데이터 애플리케이션
11.1 데이터 준비 = 452
11.1.1 시계열과 크로스 섹션 정렬 = 452
11.1.2 다른 빈도를 가지는 시계열 연산 = 454
11.1.3 일별 시간과 현재 최신 데이터 선택하기 = 458
11.1.4 데이터와 함께 나누기 = 461
11.1.5 수익 지수와 누적 수익 = 463
11.2 그룹 변환과 분석 = 465
11.2.1 그룹 요인 밝히기 = 468
11.2.2 십분위와 사분위 분석 = 470
11.3 추가 예제 애플리케이션 = 472
11.3.1 신호 경계 분석 = 472
11.3.2 선물 계약 롤링 = 475
11.3.3 롤링 상관관계와 선형 회귀 = 479
CHAPTER 12 고급 NumPy
12.1 ndarray 객체 내부 알아보기 = 481
12.1.1 NumPy dtype 구조 = 482
12.2 고급 배열 조작 기법 = 484
12.2.1 배열 재형성하기 = 484
12.2.2 C와 포트란 순서 = 486
12.2.3 배열 이어붙이고 나누기 = 487
12.2.4 원소 반복시키기: repeat과 tile = 490
12.2.5 팬시 색인: take와 put = 492
12.3 브로드캐스팅 = 493
12.3.1 다른 축에 대해 브로드캐스팅하기 = 496
12.3.2 브로드캐스팅 이용해 배열에 값 대입하기 = 498
12.4 고급 ufunc 사용법 = 499
12.4.1 ufunc 인스턴스 메서드 = 500
12.4.2 사용자 ufunc = 502
12.5 구조화된 배열과 레코드 배열 = 503
12.5.1 중첩된 dtype과 다차원 필드 = 504
12.5.2 구조화된 배열을 사용해야 하는 이유 = 506
12.5.3 구조화된 배열 다루기: numpy.lib.recfunctions = 506
12.6 정렬에 관하여 = 506
12.6.1 간접 정렬: argsort와 lexsort = 508
12.6.2 다른 정렬 알고리즘 = 510
12.6.3 numpy.searchsorted: 정렬된 배열에서 원소 찾기 = 511
12.7 NumPy matrix 클래스 = 513
12.8 고급 배열 입ㆍ출력 = 515
12.8.1 메모리 맵 파일 = 515
12.8.2 HDF5 및 기타 배열 저장 옵션 = 517
12.9 성능 팁 = 517
12.9.1 인접 메모리의 중요성 = 518
12.9.2 기타 성능 옵션: Cython, f2py, C = 520
파이썬 언어의 기본
A.1 파이썬 인터프리터 = 522
A.2 파이썬 기초 = 523
A.2.1 시멘틱 = 523
A.2.2 스칼라형 = 534
A.2.3 흐름 제어 = 542
A.3 자료 구조와 순차 자료형 = 549
A.3.1 튜플 = 549
A.3.2 리스트 = 552
A.3.3 내장 순차 자료형 함수 = 557
A.3.4 사전 = 560
A.3.5 세트 = 564
A.3.6 리스트 내포, 사전 내포, 세트 내포 = 566
A.4 함수 = 569
A.4.1 네임스페이스, 스코프, 지역 함수 = 570
A.4.2 여러 값 반환하기 = 571
A.4.3 함수도 객체다 = 572
A.4.4 익명 함수 = 574
A.4.5 클로저: 함수를 반환하는 함수 = 575
A.4.6 *args와 **kwargs를 사용해서 호출 문법 확장하기 = 577
A.4.7 커링: 일부 인자만 취하기 = 578
A.4.8 제너레이터 = 579
A.5 파일과 운영체제 = 583
Index = 586