Top

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)로부터 데이터를 가져와 수익률, 이동 평균, 변동성 등 여러 주제를 다루며, 그런 금융 개념에 시각화를 적용하는 방법도 알아본다.

저자/역자 소개

지은이의 말

Pandas는 현실 세계의 데이터 분석을 위한 인기 있는 파이썬(Python) 패키지다. Pandas는 효율적이고 빠른 고성능의 데이터 구조를 제공함으로써 데이터 탐색과 분석을 매우 용이하게 해준다. 이 책은 Pandas 라이브러리의 완전한 기능을 배울 수 있게 도와 효율적인 데이터 조작과 분석의 길로 안내할 것이다.

지은이 소개

마이클 헤이트(Michael Heydt)

십수 년의 전문 소프트웨어 개발과 금융 및 상품 거래 경험을 갖춘 기술자이자 사업가이며 교육자다. 오랫동안 월스트리트에서 행위자 기반의 병행 및 분산 시스템이자 고성능과 고가용성을 갖춘 금융 거래 시스템 개발 업무를 했다. 또한 금융 및 상품 거래를 위한 클라우드 방식의 마이크로서비스 기반 소프트웨어 솔루션 제작을 주로 하는 마이크로 트레이딩 서비스(Micro Trading Services)라는 기업의 창업자다. 드렉셀대학교에서 수학 및 컴퓨터 과학 석사 학위를 취득하고 펜실베니아대학교 와튼 스쿨에서 기술 경영 석사 학위를 취득했다.

옮긴이의 말

“데이터를 고문하라. 그러면 모든 걸 자백할 것이다(Toture the data, and it will confess to anything).” ㅡ 로널드 코스(Ronald Coase)
1991년 노벨 경제학상을 받은 영국의 경제학자 로널드 코스가 무려 1981년에 했던 말입니다. 35년도 더 지난 지금의 우리는 그야말로 데이터 고문(Data Torturing)의 시대에 살고 있습니다. 데이터에겐 미안하지만(?), 그래야만 우리에게 진실을 죄다 털어놓으니까 말입니다. 여기서 재미있는 점은 그 고문자가 ‘우리 모두’라는 매우 중요한 사실입니다.
로널드 코스를 인용하느라 ‘고문’이라는 단어를 썼지만, 실은 ‘과학’입니다. 지나치게 간단히 말하자면 데이터 과학(Data science)이란 무차별로 축적된 데이터로부터 ‘유의미한 정보’를 선별하고 분석해 이를 ‘미래에 대한 통찰’로 빚어내는 포괄적인 전 과정을 말하며, 따라서 이를 수행하는 사람은 당연히 IT 종사자에게만 국한돼있지 않습니다. 그러므로 앞의 표현을 바꿔보자면 우리는 모두 데이터 과학자입니다. 예컨대 우리는 선거 후보자의 치적이나 전과기록 등을 토대로 유권자 입장에서 가치 있는 정보만을 추리고 분석해 미래의 정치 대리인으로 임명할지 여부를 놓고 투표를 하니까요.
이렇듯 우리는 이미 데이터 과학자로서의 일상을 살고 있지만 현대의 IT 기술, 통계학, 경제학, 경영학, 금융공학 등 여러 지식체계를 접목해 데이터 조작과 분석을 과학적으로 수행할 수 있는 좀 더 전문적인 능력이 필요한 상황에 처했음을 인정하게 됩니다. 이 책을 선택한 저와 여러분 또한 그럴 것입니다.
이에 큰 도움이 될 Pandas는 파이썬 프로그래밍 언어를 기반으로 하는 통계 분석 라이브러리이며, 이 책은 Pandas의 사용 방법을 아주 쉽게 차근차근 설명합니다. 흔히 사용되는 R을 대신해 파이썬을 통계 도구로 사용할 수 있습니다. 이는 이미 파이썬을 아는 사람이라면 R을 사용하지 않아도 자신의 파이썬 경험을 데이터 과학 분야에 그대로 활용할 수 있다는 의미입니다. 그런데 더더욱 놀라운 것은 파이썬 경험이 없더라도 Pandas를 사용하는 데 아무 무리가 없다는 점입니다. 바로 이 책이 그걸 증명합니다.

옮긴이 소개

이태상

자바와 웹 전문가로서 교육과 컨설팅을 주로 했으며, 오랜 기간 전자 금융 업무를 담당했다. 현재 한 금융기관의 재무회계 시스템 구축 프로젝트에 참여하고 있다. 에이콘출판사의 『톰캣 최종분석』(2005), 『리액트 네이티브 앱 제작 원론』(2018) 등 다수의 IT 서적을 번역했다.

목차

목차
  • 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.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[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행]
새성
->
생성