실생활 예제로 쉽게, 단계별 분석에 따라 구조적으로 배우는 데이터 분석 입문서
- 데이터를 다루는 데 언어나 라이브러리는 도구일 뿐입니다. 진짜 중요한 것은 문제해결 능력입니다. 이 책은 주어진 문제를 어떻게 단계적으로 접근하면 좋을지에 대해 독자 친화적으로 가이드를 주는 책입니다. 프로그래밍 기초 지식만 있다면 통계에 대한 지식이 전혀 없는 비전공자도 데이터 분석에 입문할 수 있도록 쉽게 풀어쓴 책입니다.
- 이 저장소는 이것이 데이터 분석이다 파이썬편의 예제에 사용되는 소스코드를 위한 저장소입니다.
- 파이썬 데이터분석 라이브러리 버전과 코드는 계속해서 바뀌기 때문에, 개정판 만으로는 속도를 따라가기 힘듭니다.
- 그래서 이 저장소는 다음과 같은 변경사항을 빠르게 반영하기 위해 유지되고 있습니다.
- 라이브러리 버전의 변화에 따른 소스코드 변경
- 크롤링 대상이 되는 페이지의 HTML 구조 변경
- 예제의 논리적 오류, 오탈자, 실행 에러
- 만약 제가 발견하지 못하는 예제의 오류들을 독자 분들이 발견해 주신다면, 이를 빠르게 반영하고자 합니다.
- 3쇄 부터 반영되는 변경 내용
- 2장의 나무위키 예제
- 기존에 requests, cloudscraper를 사용하던 정적 크롤링 방식 대신, selenium과 chromediver를 사용하는 동적 크롤링 방식으로 변경되었습니다.
- 코드 내용에 큰 변화는 없습니다.
- 이에 따라 책의 내용도 약간 변경되었습니다.
- 2장의 트위터 API 사용 예제
- 기존에 api.search(keyword)로 크롤링 했을 때, 갯수 제한 오류가 발생하는 케이스가 있었습니다.
- 이에 따라, Cursor 객체로 API를 사용하여 갯수 제한 오류를 해결하였습니다.
- 역시 코드 내용에 큰 변화는 없고, 자세한 내용은 Github을 이용해 커밋의 변경 사항을 확인해주세요.
- 4장의 감성 분석 예제
- 네이버 플레이스 API가 종료됨에 따라, 감성 분류 데이터셋 확보 예제를 카카오맵 selenium 크롤링 예제로 변경하였습니다.
- 이에 따라 책의 예제가 변경되었습니다.
- 카카오맵의 가게 리뷰 데이터를 selenium과 chromedriver를 활용해 동적 크롤링합니다.
- 자세한 내용은 Github을 이용해 커밋의 변경 사항을 확인해주세요.
- 2장의 나무위키 예제
- 이 책의 내용은 아래 링크의 유튜브 동영상 강의로 제작되고 있습니다.
- 한빛미디어 유튜브 : https://www.youtube.com/playlist?list=PLVsNizTWUw7FmLj3IMECoauQ_-DUbNF0M
- 강의에서 다루는 내용
- 본 강의는 코드를 따라 치거나, 이론적인 설명에 집중하지 않습니다.
- 입문자 입장에서 동영상을 보는 여러분께서는,
코드를 따라치는 것보다는예제를 풀어나가는 과정을 구경하는 것을 권장드립니다. - 예를 들어 축구하는 법을 배우고 싶을 때, 아직은 축구하는 법을 잘 모르지만 구경부터 시작하는 것과 비슷합니다.
- 축구를 하는 사람들을 구경하면서 볼을 다루는 법을 유심히 관찰한 뒤, 자신이 연습할 때 그 부분들을 신경써서 연습하는 것입니다.
- 매 주 일요일 8시에 해당 강의를 스트리밍으로 진행합니다. 강의가 진행되는 기간 동안에는, 스트리밍을 구경하면서 질문을 남겨주실 수 있습니다.
- 스트리밍은 한빛미디어 계정이 아닌, 개인 유튜브 계정으로 진행됩니다.
- 유튜브 채널 : https://www.youtube.com/channel/UCmWjmDlmMcuZ018xIHuh3iQ?guided_help_flow=3
- 기간 : 2020.02 ~ 2020.03
- version 1.0.0 (2020.02.27)
- 2020.02.10 출간 직후 ~ 현재까지의 recent commit 버전입니다
- version 1.0.1 (2020.02.29)
- 2장의 나무위키 크롤링 예제
- 페이지 내 HTML 구조 변경 때문에 예제가 실행되지 않는 문제를 해결하였습니다.
- 2장의 나무위키 크롤링 예제
- version 1.0.2 (2020.05.29)
- 1장 멕시코풍 프랜차이즈 chipotle의 주문 데이터 분석에서, 65쪽
'Chicken Bowl'을 2개 이상 주문한 주문 횟수 구하기문제의 출제 의도 오류가 있었습니다. 원래의 의도는'Chicken Bowl'을 2개 이상 주문한 고객들의 "Chicken Bowl" 메뉴에 대한 총 주문 수량에 대한 문제였습니다. 이슈를 제기해주신 장기식님께 감사드립니다.
- 1장 멕시코풍 프랜차이즈 chipotle의 주문 데이터 분석에서, 65쪽
- version 1.0.3 (2020.06.17)
- pandas 1.0.0 이상에서의 인덱스 문법 변경이 있었습니다. 따라서 3장 예제에서 ix 대신, iloc 문법을 사용하도록 변경하였습니다. 메일 보내주신 윤준호님께 감사드립니다.
- version 1.0.4 (2020.06.26)
- drink EDA 예제에서 한국의 순위를 구하는 코드에 오류를 수정하였습니다. contribution 해주신 @kgg6008 감사드립니다.
- version 1.0.5 (2020.08.18)
- 2장의 나무위키 크롤링 예제
- 예제에서 대상 크롤링 페이지의 카테고리 정보가 없는 경우의 예외처리 오류를 수정하였습니다. 이슈를 제기해주신 진선웅님(sunung.jin@gmail.com)께 감사드립니다.
- 2장의 나무위키 크롤링 예제
- version 1.0.6 (2020.8.24)
- 3장의 movie rating predict 예제
- 예제에서
movie_grouped_rating_info,user_grouped_rating_info를 pandas로 처리하는 과정에서 발생하는 라이브러리 버전업으로 인한 문법 오류를 수정하였습니다. 이슈를 제기해주신 진선웅님(sunung.jin@gmail.com)께 감사드립니다.
- 예제에서
- 3장의 movie rating predict 예제
- version 1.0.7 (2020.8.27)
- 4장의 감성 분석 예제
- 예제에서 사용되는 네이버 API의 변경(요청 수 제한을 페이지 300까지 지원)으로 인하여, 1000개까지 활용하던 API response를 300개까지 활용하도록 변경하였습니다.
- p.240 에서
df['y'] = df['score'].apply(lambda x: 1 if int(x) > 3 else 0)코드의 int 타입 형변환이 pandas의 버전 업데이트로 인해 deprecated 되었습니다. float 형변환을 하는것으로 코드를 변경하였습니다. - 이슈를 제기해주신 진선웅님(sunung.jin@gmail.com)께 다시 한 번 감사드립니다.
- 4장의 감성 분석 예제
- version 1.0.8 (2020.10.20)
- 2장의 나무위키 크롤링 예제
- 나무위키 예제에서 konlpy 설치법에 대한 설명을 추가하였습니다. 현재 konply 버전에서 나타나는 자바 관련 버그를 반영하였습니다.
- 2장의 트위터 크롤링 예제
- 예제에서 사용되는 networkx의 버전업으로 인한 문법 변경을 반영하였습니다. Graph 객체의 (node -> nodes)로 변경
- 2장의 나무위키 크롤링 예제
- version 1.0.9 (2020.10.28)
- 4장의 감성 분류 예제
- 네이버 플레이스 API 종료로 인해 Step 1(크롤링 부분)이 실행되지 않습니다.
- chapter4의 해당 노트북에서 크롤링 부분을 모두 주석처리 하였습니다.
- 하지만 분석의 내용은 변함 없으니, 이전에 크롤링해둔 데이터로 예제를 실행하시면 됩니다.
- 이슈를 제기해주신 임상범님(bacchos@gmail.com)께 감사드립니다.
- 4장의 감성 분류 예제
- version 1.1.0 (2021.05.31)
- 2장의 나무위키 예제
- 나무위키 페이지의 페이지 소스 및 보안정책 변경으로 인한 크롤링 코드 수정이 있었습니다.
- 내용상의 변화는 없고, 추가 패키지를 설치해준 뒤 request 라이브러리 대신 cloudscraper 라이브러리를 사용하기만 하면 됩니다.
- 이슈를 제기해주신 이홍규님(phong0104@snu.ac.kr)께 감사드립니다.
- 2장의 나무위키 예제
- version 2.0.0 (2021.06.16) : 인쇄 3쇄부터 반영되는 내용
- 2장의 나무위키 예제
- 기존에 requests, cloudscraper를 사용하던 정적 크롤링 방식 대신, selenium과 chromediver를 사용하는 동적 크롤링 방식으로 변경되었습니다.
- 코드 내용에 큰 변화는 없습니다.
- 이에 따라 책의 내용도 약간 변경되었습니다.
- 2장의 트위터 API 사용 예제
- 기존에 api.search(keyword)로 크롤링 했을 때, 갯수 제한 오류가 발생하는 케이스가 있었습니다.
- 이에 따라, Cursor 객체로 API를 사용하여 갯수 제한 오류를 해결하였습니다.
- 역시 코드 내용에 큰 변화는 없고, 자세한 내용은 Github을 이용해 커밋의 변경 사항을 확인해주세요.
- 4장의 감성 분석 예제
- 네이버 플레이스 API가 종료됨에 따라, 감성 분류 데이터셋 확보 예제를 카카오맵 selenium 크롤링 예제로 변경하였습니다.
- 이에 따라 책의 예제가 변경되었습니다.
- 카카오맵의 가게 리뷰 데이터를 selenium과 chromedriver를 활용해 동적 크롤링합니다.
- 자세한 내용은 Github을 이용해 커밋의 변경 사항을 확인해주세요.
- 2장의 나무위키 예제
- 이 책을 통해 데이터분석을 학습하고자 하시는 분들, 혹은 학습/강의 교재로 사용하고자 하시는 분들 모두의 의견을 듣고자 합니다.
- 설명이 추가되었으면 하는 내용을 알려주세요.
- 예제 내의 오류를 발견한다면 알려주세요.
- 주석이 부족한 부분에 주석을 달아주세요 .
- 의견을 보내주시는 방법
- 본 repository에 pull request를 보내주세요.
- 본 repository에 issue를 남겨주세요.
- 저에게 메일을 보내주세요 : yoonkt200@gmail.com
