반응형
2주차 계획
- 커리큘럼
- 일정 : 7/8 ~ 7/14
- 진도 : Chapter 02
- 기본 미션 : p. 150의 확인 문제 1번 풀고 인증하기
- 추가 미션 : p. 137 ~ 138 손코딩 실습으로 원하는 도서의 페이지 수를 추출하고 화면 캡처하기
미션
기본 미션
p. 150의 확인 문제 1번 풀고 인증하기
- 다음과 같은 데이터프레임 df가 있을 때 loc 메서드의 결과가 다른 하나는 무엇인가요?
- (1) df.loc[[0,1,2], ['col1','col2']]
- (2) df.loc[0:2, 'col1':'col2']
- (3) df.loc[:2, [True, True]]
- (4) df.loc[::2, 'col1':'col2']
정답 : 4
추가 미션
p. 137 ~ 138 손코딩 실습으로 원하는 도서의 페이지 수를 추출하고 화면 캡처하기
하단의 실습 부분으로 대체
Chapter 02. 데이터 수집하기
- 학습 목표
- 웹 서비스 API에서 데이터를 가져오는 방법 배우기
- 웹 페이지를 웹 스크래핑하여 데이터를 가져오는 방법 배우기
02-1. API 사용하기
API 란
- API (Application Programming Interface)
- 두 프로그램이 서루 대화하기 위한 방법을 정의한 것
- 웹 기반 API가 널리 사용됨
- HTTP (Hyper Text Transfer Protocol) : 웹 페이지를 전송하기 위한 통신 규약
- HTML (Hypertext Markup Language) : 웹 페이지 문서를 위한 마크업 언어
- 웹 기반 API는 HTTP 프로토콜을 사용하고, HTML 대신 CSV, JSON, XML 같은 형태의 데이터를 주고 받는다.
파이썬에서 JSON 데이터 다루기
- JSON (JavaScript Object Notation)
- 파이썬의 딕셔너리(dictionary)와 리스트(list)를 중첩해 놓은 것과 비슷하다.
- 키(Key)와 값(value)를 콜론(:)으로 연결한다.
- 키와 값에 문자열을 쓰려면 큰따옴표("")로 감싼다.
파이썬 객체를 JSON 문자열로 변환하기 : json.dumps() 함수
JSON 문자열을 파이썬 객체로 변환하기 : json.loads() 함수
JSON 문자열을 데이터프레임으로 변환하기 : read_json() 함수
파이썬에서 XML 데이터 다루기
- XML (eXtensible Markup Language)
- 엘리먼트(element)들이 계층 구조를 이루면서 정보를 표현
- 루트 엘리먼트
- 부모 엘리먼트 / 부모 노드
- 자식 엘리먼트
XML 문자열을 파이썬 객체로 변환하기 : fromstring() 함수
- json 패키지는 JSON 문자열을 반환하지만, fromstring() 함수는 단순 파이썬 객체가 아닌 ElementTree 모듈 아래에 정의된 Element 클래스 객체를 반환한다.
자식 엘리먼트 확인하기 : finxtext() 메서드
여러 개의 자식 엘리먼트 확인하기 : findall() 메서드와 for 문
API로 20대가 가장 좋아하는 도서 찾기
02-2. 웹 스크래핑 사용하기
- 웹 스크래핑(web scraping), 웹 크롤링(web crawling)
- 웹사이트의 페이지를 옮겨 가면서 데이터를 추출하는 작업
검색 결과 페이지 가져오기
데이터프레임 행과 열 선택하기: loc 메서드
HTML에서 데이터 추출하기: 뷰티플수프
검색 결과 페이지 HTML 가져오기: requests.get() 함수
태그 위치 찾기 : find() 메서드
도서 상세 페이지 HTML 가져오기
테이블 태그를 리스트로 가져오기: find_all() 메서드
태그 안의 텍스트 가져오기: get_text() 메서드
전체 도서의 쪽수 구하기
판다스 데이터프레임은 한 행씩 순차적으로 처리하는데 최적화되어 있지 않다. 그래서 데이터프레임을 for 문으로 반복하는 것은 비효율적이다.대신 데이터프레임은 각 행 또는 각 열에 원하는 함수를 자동으로 적용해 주는 여러 가지 방법을 제공한다.
데이터프레임 행 혹은 열에 함수 적용하기: apply() 메서드
데이터프레임과 시리즈 합치기: merge() 함수
- on 매개변수
- 합칠 때 기준이 되는 열을 지정한다.
- 단, 두 데이터프레임에 모두 존재해야 한다.
- how 매개변수
- 합쳐질 방식을 지정한다. - SQL Join과 비슷
- 사용 가능한 값 : inner(기본), left, right, outer
- left_on, right_on 매개변수
- 합칠 기준이 되는 열의 이름이 서로 다른 경우 각각 지정하는 방법
- left_index, right_index 매개변수
- 합칠 기준이 열이 아니라 인덱스인 경우 사용하는 방법
웹 스크래핑할 때 주의할 점
- 웹사이트에서 스크래핑을 허락하였는지 확인할 것 - robots.txt 파일 확인
- HTML 태그를 특정할 수 있는지 확인할 것
반응형