파이썬 데이터 클리닝 쿡북

파이썬과 판다스를 활용한 데이터 전처리

데이터로부터 통찰을 얻으려면 데이터를 정제해야 한다. 데이터를 적절히 정제하지 않고 곧바로 분석에 들어갔다가는 잘못된 결과를 얻게 될 수 있기 때문이다. 《파이썬 데이터 클리닝 쿡북》은 파이썬으로 데이터를 다루고 정제할 때 사용할 수 있는 도구와 기법을 보여준다.

먼저 통상적인 데이터 소스로부터 데이터를 얻고 형태를 확인하는 일상적인 작업을 하는 법을 보여준다. 그런 다음, 데이터를 유용한 형태로 바꾸는 법을 가르친다. 원하는 데이터를 골라내고 요약함으로써 통찰을 얻는 법, 도출된 문제점을 해결하는 법도 알려준다. 이어서 누락값 처리, 오류 검사, 중복 데이터 제거, 이상값과 날짜를 다루는 법으로 진행한다. 지도학습으로 예상치 못한 값과 분류 오류를 식별하고, 탐색적 데이터 분석(EDA)을 위한 시각화를 통해 예상치 못한 값을 식별한다. 끝으로, 새로운 데이터에 대해서도 수정 없이 재사용할 수 있는 함수와 클래스를 작성한다.

이 책을 마친 후에는 데이터를 정제하고 문제를 진단하는 주요 기술을 갖게 될 것이다.

★ 이 책에서 다루는 내용 ★

  • 다양한 데이터 소스로부터 데이터를 읽고 분석하는 법
  • 데이터프레임, 열, 행의 어트리뷰트를 요약하는 법
  • 데이터를 필터링하고 주어진 요건을 충족하는 열을 선택
  • 날짜, 누락값이 있는 데이터 등 지저분한 데이터를 다루기
  • 메서드 체이닝으로 파이썬 판다스 작업 생산성을 향상
  • 시각화를 통해 통찰을 얻고 잠재적인 데이터 이슈를 식별
  • 데이터의 변동을 파악하는 능력을 향상
  • 사용자 정의 함수 및 클래스를 작성해 데이터 정제를 자동화

마이클 워커(Michael Walker)

30년 이상 여러 교육기관에서 데이터 분석가로 일했다. 또한 2006년부터 대학에서 데이터 과학, 연구 방법, 통계, 컴퓨터 프로그래밍을 가르쳤다. 그는 공공 부문 및 재단의 보고서를 생산하며 학술지에 게재할 자료를 분석한다.

최용

한국방송통신대학교에서 컴퓨터 과학을 전공하고 2000년대 초부터 IT 업계에서 일했다. 은행의 일괄 작업 운영과 서버 운영 자동화를 돕는 외산 소프트웨어의 기술 지원 업무를 주로 했고, 현재는 위키북스에서 교정 업무를 하고 있다.

저서로 《왕초보를 위한 파이썬》(사이버출판사, 2002), 《예제 중심의 파이썬》(인피니티북스) 등이 있으며, 《파이썬으로 배우는 데이터 과학 입문과 실습》(위키북스), 《익스플로링 라즈베리 파이》(위키북스), 《침투 본능, 해커의 기술》(위키북스), 《웹 애플리케이션 보안》(한빛미디어) 등을 번역했다.

  • ▣ 01장: 표 데이터를 판다스로 가져올 때의 데이터 정제
    • 1.1 CSV 파일 가져오기
    • 1.2 엑셀 파일 가져오기
    • 1.3 SQL 데이터베이스의 데이터를 가져오기
    • 1.4 SPSS, Stata, SAS 데이터 가져오기
    • 1.5 R 데이터 가져오기
    • 1.6 표 데이터 저장
    •  
  • ▣ 02장: HTML과 JSON을 판다스로 가져올 때의 데이터 정제
    • 2.1 단순한 JSON 데이터 가져오기
    • 2.2 API를 통해 복잡한 JSON 데이터 가져오기
    • 2.3 웹페이지의 데이터 가져오기
    • 2.4 JSON 데이터 저장
    •  
  • ▣ 03장: 데이터 측정
    • 3.1 처음 데이터를 훑어보기
    • 3.2 열을 선택하고 정돈하기
    • 3.3 행을 선택하기
    • 3.4 범주형변수의 빈도를 생성하기
    • 3.5 연속변수의 요약통계 생성하기
    •  
  • ▣ 04장: 데이터의 부분집합에서 누락값과 이상값 식별
    • 4.1 누락값 찾기
    • 4.2 변수가 1개인 이상값 식별하기
    • 4.3 이변량 관계의 이상값과 예상치 못한 값 식별하기
    • 4.4 부분집합을 이용해 변수 간의 논리적 불일치를 찾기
    • 4.5 선형 회귀를 활용해 유의한 영향을
    • 4.6 k-최근접 이웃을 활용해 이상값을 찾기
    • 4.7 아이솔레이션 포레스트를 활용한 이상 탐지
    •  
  • ▣ 05장: 시각화를 활용해 예상치 못한 값을 식별하기
    • 5.1 히스토그램을 활용해 연속변수의 분포를 조사하기
    • 5.2 박스플롯을 활용해 연속변수의 이상값을 식별하기
    • 5.3 그룹별 박스플롯으로 특정 그룹에서 예상치 못한 값을 드러내기
    • 5.4 바이올린 플롯으로 분포 형태와 이상값을 조사하기
    • 5.5 산점도를 활용해 이변량 관계를 보기
    • 5.6 라인 플롯으로 연속변수의 추세를 조사하기
    • 5.7 상관행렬을 기반으로 히트맵을 작성하기
    •  
  • ▣ 06장: 데이터 정제, 탐색 및 시리즈 연산
    • 6.1 판다스 시리즈에서 값을 얻기
    • 6.2 판다스 시리즈에 대한 요약통계 표시
    • 6.3 시리즈 값 변경
    • 6.4 조건에 따라 시리즈 값을 변경
    • 6.5 문자열 시리즈 데이터 평가와 정제
    • 6.6 날짜 다루기
    • 6.7 누락 데이터 식별과 정제
    • 6.8 k-최근접 이웃으로 누락값 대치
    •  
  • ▣ 07장: 집계 시 지저분한 데이터 다루기
    • 7.1 itertuples을 활용한 데이터 순회(안티 패턴)
    • 7.2 넘파이 배열의 그룹별 요약을 계산
    • 7.3 groupby를 사용해 데이터를 그룹별로 조직화하기
    • 7.4 좀 더 복잡한 집계 함수를 groupby와 함께 사용하기
    • 7.5 사용자 정의 함수 및 apply와 groupby
    • 7.6 groupby를 사용해 데이터프레임의 분석 단위를 바꾸기
    •  
  • ▣ 08장: 데이터프레임들을 결합할 때의 데이터 문제 해결
    • 8.1 데이터프레임을 수직으로 결합하기
    • 8.2 일대일 병합
    • 8.3 병합 기준 열을 여러 개 사용하기
    • 8.4 일대다 병합
    • 8.5 다대다 병합
    • 8.6 병합 루틴 개발
    •  
  • ▣ 09장: 데이터 타이딩과 리셰이핑
    • 9.1 중복 행 제거하기
    • 9.2 다대다 관계 수정하기
    • 9.3 stack과 melt로 넓은 데이터를 긴 포맷으로 리셰이핑
    • 9.4 열 그룹을 녹이기
    • 9.5 unstack과 pivot을
    •  
  • ▣ 10장: 사용자 정의 함수와 클래스로 데이터 정제를 자동화
    • 10.1 데이터를 처음 살펴보는 함수
    • 10.2 요약통계와 빈도를 표시하는 함수
    • 10.3 이상치와 예상치 못한 값을 식별하는 함수
    • 10.4 데이터 집계와 결합을 위한 함수
    • 10.5 시리즈 값을 업데이트하는 로직을 담은 클래스
    • 10.6 표 형태가 아닌 데이터 구조를 다루는 클래스