이미 소장하고 있다면 판매해 보세요.
|
|
1장. pandas 기초
__pandas 임포트 __소개 __pandas DataFrame __DataFrame 속성 __데이터 형식 이해 __열 선택 __Series 메서드 호출 __Series 연산 __Series 메서드 체인 __열 이름 변경 __열의 생성과 삭제 2장. 기본 DataFrame 연산 __소개 __여러 DataFrame 열 선택 __메서드를 사용해 열 선택 __열 이름 정렬 __DataFrame 요약 __DataFrame 메서드 체인 __DataFrame 연산 __결측치 비교 __DataFrame 연산 방향 전환 __대학 인종 다양성 지수 결정 3장. DataFrame 생성과 유지 __소개 __스크래치에서 DataFrame 생성 __CSV 작성 __대형 CSV 파일 읽기 __엑셀 파일 사용 __ZIP 파일로 작업 __데이터베이스와 작업 __JSON 파일 읽기 __HTML 테이블 읽기 4장. 데이터 분석 시작 __소개 __데이터 분석 루틴 개발 __데이터 딕셔너리 __데이터 형식 변경으로 메모리 절약 __최대 중에 최소 선택 __정렬해 각 그룹에서 가장 큰 항목 선택 __sort_values를 사용해 nlargest 복제 __추적 지정가 주문 가격 계산 5장. 탐색적 데이터 분석 __소개 __요약 통계량 __열 형식 __예제 구현 __범주형 데이터 __연속 데이터 __범주 간의 연속 값 비교 __두 개의 연속 열 비교 __범주 값과 범주 값 비교 __pandas 프로파일링 라이브러리 사용 6장. 데이터의 부분집합 선택 __소개 __Series 데이터 선택 __DataFrame 행 선택 __DataFrame 행과 열을 동시에 선택 __정수와 레이블 모두로 데이터 선택 __사전식으로 슬라이싱 7장. 행 필터링 __소개 __불리언 통계량 계산 __다중 불리언 조건 구성 __불리언 배열을 사용한 필터링 __행 필터링과 인덱스 필터링 비교 __유일하고 정렬된 인덱스를 사용한 선택 __SQL WHERE 절 해석 __쿼리 메서드를 사용한 불리언 인덱싱의 가독성 향상 __.where 메서드를 사용해 Series 크기 유지 __DataFrame 행 마스킹 __불리언, 정수 위치, 레이블을 사용해 선택 8장. 인덱스 정렬 __소개 __인덱스 객체 검사 __데카르트 곱 생성 __인덱스 폭발 __동일하지 않은 인덱스로 값 채우기 __다른 DataFrame의 열 더하기 __각 열의 최댓값 강조 __메서드 체인으로 idxmax 복제 __열에서 최대 공통 최댓값 찾기 9장. 그룹화를 위한 집계, 여과, 변환 __소개 __집계 정의 __복수 열과 함수를 사용한 그룹화와 집계 __그룹화 후 다중 인덱스 제거 __사용자 정의 집계 함수를 사용한 그룹화 __*args와 **kwargs를 사용한 집계 함수 사용자 정의 __groupby 객체 검사 __소수 인종이 과반인 주를 필터링 __체중 감량 내기를 통한 변신 __apply를 사용해 주별 가중 평균 SAT 점수 계산 __연속 변수를 기준으로 그룹화 __도시 간 총 비행 횟수 계산 __가장 긴 연속 정시 비행 찾기 10장. 정돈된 형식으로 데이터 재구성 __소개 __스택을 사용해 변수 값을 열 이름으로 정돈 __melt를 사용해 변수 값을 열 이름으로 정돈 __여러 변수의 그룹을 동시에 스택 __스택된 데이터 되돌리기 __groupby 집계 후 언스택 __groupby 집계로 pivot_table 복제 __손쉬운 재구성을 위한 축 레벨 이름 변경 __여러 변수가 열 이름으로 저장될 때의 정돈 __여러 변수가 단일 열로 저장될 때 정돈 __둘 이상의 값이 동일 셀에 저장될 때의 정돈 __변수가 열 이름과 값으로 저장됐을 때의 데이터 정돈 11장. pandas 객체 병합 __소개 __DataFrame에 새 행 추가 __여러 DataFrame을 함께 연결 __concat, join, merge의 차이점 이해 __SQL 데이터베이스에 연결 12장. 시계열 분석 __소개 __파이썬과 pandas 날짜 도구의 차이점 이해 __시계열을 지능적으로 슬라이스 __시간 데이터로 열 필터링 __DatetimeIndex에서만 작동하는 메서드 사용 __주간 범죄 수 계산 __주간 범죄와 교통사고를 별도로 집계 __주별, 연도별 범죄 측정 __timeIndex를 사용해 익명 함수로 그룹화 __Timestamp와 다른 열을 기준으로 그룹화 13장. matplotlib, pandas, seaborn을 이용한 시각화 __소개 __matplotlib로 시작 __matplotlib에 대한 객체지향 가이드 __matplotlib로 데이터 시각화 __pandas를 사용한 기본 도식화 __flights 데이터셋 시각화 __새로운 경향을 발견하기 위한 누적 영역 차트 __seaborn과 pandas의 차이점 __seaborn 그리드를 사용한 다변량 분석 __seaborn으로 diamonds 데이터셋의 심슨 역설 발견 14장. pandas 디버깅과 테스트 __데이터를 변환하는 코드 __Apply 성능 __Dask, Pandarell, Swifter 등으로 apply 성능 향상 __코드 검사 __Jupyter에서의 디버깅 __Great Expectations를 이용한 데이터 무결성 관리 __pandas와 함께 pytest 사용 __Hypothesis를 사용해 테스트 생성 |
Theodore Petrou
|
★ 요약 ★
pandas의 모든 기능을 친절한 예제와 설명, 실제 파이썬 코드를 통한 실습과 함께 설명한다. pandas의 핵심 DataFrame과 Series를 주축으로 함수, 메서드, 속성을 설명하고 장단점은 물론 메모리 사용량과 처리 시간도 비교한다. 금융 데이터에서 가장 중요한 시계열 자료를 처리하는 다양한 방법과 SQL 데이터베이스에 연결하는 방법도 알려준다. 한편 pandas 라이브러리의 그룹화 함수를 체인 기능과 집계함수를 결합해 사용할 때 pandas 라이브러리의 강력한 힘을 느낄 수 있다. 그리고 정돈된 데이터(tidy data)의 정의와 함께 데이터 정돈 방법과 절차를 자세히 알아보고 matplotlib, python plot, seaborn을 이용한 데이터 시각화와 각각의 장단점을 상세히 설명한다. ★ 이 책에서 다루는 내용 ★ ■ 모든 데이터셋을 탐색할 수 있게 해주는 pandas의 기본 지식 ■ 쿼리와 선택으로 데이터 중 원하는 부분만 부분집합으로 적절히 골라내는 방법 ■ 데이터를 종합하거나 각 그룹으로 변환하기 전 개별 그룹으로 분할하는 방법 ■ 데이터 분석과 시각화가 용이하도록 데이터를 정돈된 형식으로 재구성하기 ■ 복잡한 실제 환경 데이터를 머신러닝에서 사용할 수 있도록 준비하기 ■ pandas의 SQL 유사 연산 기능으로 서로 다른 소스의 데이터 병합하기 ■ pandas의 독보적인 시계열 데이터 처리 능력 ■ pandas의 matplitlib나 seaborn을 사용한 시각화 기능 ★ 이 책의 대상 독자 ★ 단순한 예제에서 고급 예제까지 거의 100가지 예제를 다룬다. 모든 예제는 간단명료하고 최신 파이썬 문법과 구문을 사용해 작성했다. ‘작동 원리’ 절에서는 예제의 복잡한 각 단계를 상세히 설명하며, 종종 ‘추가 사항’ 절에서 새로운 예제에 대한 정보를 얻을 수 있다. 처음 6개 장의 예제는 간단한 예제로 구성됐으며, 이후 5개 장에 비해 기본적이고 근본적인 pandas 연산에 중점을 둔다. 나머지 5개 장은 고급 연산과 프로젝트 성격이 강한 예제를 소개한다. 난이도가 광범위하므로 초보자나 숙련자 모두에게 유용하다. 내 경험에 비춰 봤을 때 pandas를 일상적으로 사용하는 사람도 pandas의 관용구에 익숙하지 않다면 마스터하지 못할 것이다. 이는 pandas가 방대한 영역을 다루기 때문이다. 대부분 동일한 연산을 수행할 수 있는 방법은 여러 가지가 있기 때문에 사용자는 원하는 결과를 얻고자 비효율적인 방법을 사용하고 있을 수도 있다. 동일한 문제를 해결하는 pandas 솔루션의 속도 차이가 수십 배 이상 다른 경우도 빈번하다. 필수 지식은 오직 파이썬뿐이다. 독자가 리스트(list), 집합(set), 딕셔너리(dictionary), 튜플(tuple) 등의 파이썬 내장 데이터 저장소에 어느 정도 익숙하다고 가정한다. ★ 이 책의 구성 ★ 1장, ‘pandas 기초’에서는 pandas 데이터 구조를 이루는 두 구성 요소인 Series와 DataFrame을 해부하고 용어를 정리한다. 각 열은 동일한 데이터 형식을 가져야 하고 우리는 각 데이터 형식을 알아본다. 이를 통해 Series와 DataFrame의 메서드를 호출하고 바꾸면서 두 요소의 진정한 힘을 배울 수 있다. 2장, ‘기본 DataFrame 연산’에서는 데이터 분석을 위해 가장 중요하고 보편적인 연산을 알아본다. 3장, ‘DataFrame 생성과 유지’에서는 DataFrame을 생성하고 값을 넣는 다양한 방법을 알아본다. 4장, ‘데이터 분석 시작’에서는 데이터를 읽어 들인 후, 해야 할 반복 작업에 도움이 되는 내용을 다룬다. 5장, ‘탐색적 데이터 분석’에서는 수치와 범주 데이터를 비교하는 기본 분석 기법을 다룬다. 또한 일반적인 시각화 기법도 알아본다. 6장, ‘데이터의 부분집합 선택’에서는 서로 다른 부분집합 선택에서 다양하고 혼동되는 부분 등 여러 주제를 다룬다. 7장, ‘행 필터링’에서는 불리언 조건을 이용해 데이터의 부분집합을 선택하는 쿼리 프로세스를 다룬다. 8장, ‘인덱스 정렬’에서는 상당히 중요하면서도 종종 잘못 이해하고 있는 인덱스 객체를 다룬다. 인덱스를 잘못 다루면 많은 잘못된 결과를 초래한다. 예제에서 강력한 결과를 얻을 수 있는 올바른 사용법을 알아본다. 9장, ‘그룹화를 위한 집계, 여과, 변환’에서는 데이터 분석에 필요한 강력한 그룹화 기능을 다룬다. 따라서 목적에 맞는 그룹에 적용할 사용자 정의 함수를 구성할 수 있다. 10장, ‘정돈된 형식으로 데이터 재구성’에서는 정돈된 데이터를 설명하고 중요한 이유를 알아보고 서로 다른 형태의 데이터를 정돈하는 방법을 다룬다. 11장, ‘pandas 객체 병합’에서는 DataFrame과 Series를 수직과 수평으로 병합하는 여러 메서드를 알아본다. 또한 웹 스크래핑으로 트럼프와 오바마 대통령의 국정 수행 평가 점수를 비교하고 웹 스크래핑과 SQL 관계형 데이터베이스 연결을 실습해본다. 12장, ‘시계열 분석’에서는 가능한 모든 시간 차원에 따라 분해할 수 있는 시계열의 강력한 고급 기능을 알아본다. 13장, ‘matplotlib, pandas, seaborn을 이용한 시각화’에서는 pandas에서 모든 도식화의 기본이 되는 matplotlib 라이브러리를 소개한다. 그리고 pandas plot 메서드와 seaborn 라이브러리 등 pandas에서 직접 제공하지 않는 다양하고 심미적인 시각화 기능을 알아본다. 14장, ‘pandas 디버깅과 테스트’에서는 DataFrame과 pandas 코드를 테스트하는 메커니즘을 살펴본다. 생산 라인에 pandas를 배포할 계획이라면 이 장을 통해 코드를 신뢰할 수 있게 돕는다. ★ 지은이의 말 ★ pandas는 파이썬을 사용해 구조화된 데이터를 만들고 조작하기 위한 라이브러리다. 구조화했다는 것은 무슨 의미일까? 구조화란 스프레드시트나 데이터베이스에서와 같이 행과 열의 테이블 형식으로 된 데이터를 의미한다. 데이터 과학자, 분석가, 프로그래머, 엔지니어 등은 데이터를 활용하고자 이런 형식의 데이터를 활용하고 있다. pandas는 ‘작은 데이터’(단일 시스템 메모리에 들어갈 수 있는 데이터)만 다룰 수 있다. 그러나 pandas의 구문과 연산은 PySpark, Dask, Modin, cuDF, Baloo, Dexplo, Tabel, StaticFrame 등 다른 프로젝트에 채택되거나 영감을 줬다. 프로젝트에는 다양한 목표가 있지만 일부 프로젝트는 빅데이터로 확장된다. 따라서 pandas는 구조화된 데이터와 상호작용하기 위한 사실상 표준 API가 되고 있으므로 작동 방식을 이해할 가치가 있다. 내 이름은 매트 해리슨(Matt Harrison)이며 기업 교육을 수행하는 메타스네이크(MetaSnake)라는 회사를 운영한다. 내가 하는 일은 파이썬과 데이터 기술을 향상시키고자 하는 대기업을 훈련하는 것이다. 따라서 수년 동안 수천 명의 파이썬과 pandas 사용자를 가르쳤다. 2판을 쓸 때 내 목표는 pandas와 관련해 많은 사람이 혼동을 겪는 부분을 열심히 돕는 것이었다. pandas는 여러 이점이 있지만 어렵고 혼란스러운 점이 있다. 독자 여러분이 실제 환경에서 그러한 문제점을 해결할 수 있도록 돕고자 한다. 라이브 교육에 관심이 있다면 언제든지 문의하라(matt@metasnake). |