Ch.04(04-1)에서 배운 8가지 기술통계량(평균, 중앙값, 최솟값, 최댓값, 분위수, 분산, 표준편차, 최빈값)의 개념을 정리하기
5주차 (1/29 ~ 2/4)
Chapter 05
p. 314의 손코딩(맷플롯립에서 bar()함수로 막대 그래프 그리기)을 코랩에서 그래프 출력하고 화면 캡처하기
p. 316의 손코딩(텍스트 정렬, 막대 조절 및 색상 바꾸기)을 코랩에서 출력하고 화면 캡처하기
6주차 (2/5 ~ 2/12)
Chapter 06
p. 344의 손코딩(맷플롯립의 컬러맵으로 산점도 그리기)을 코랩에서 그래프 출력하고 화면 캡처하기
p. 356 ~ 359의 스택 영역 그래프를 그리는 과정을 정리하기
API(Application Programming Interface):
두 프로그램이 서로 대화하기 위한 방법
애플리케이션 간의 통신을 위해서는 주로 웹 기반 API가 사용됨
HTTP(HyperText Transfer Protocol):
웹 페이지를 전송하기 위한 통신 규약
웹사이트는 웹 페이지를 서비스하기 위해 엔진엑스NGINX, 아파치Apache 등 웹 서버 소프트웨어를 사용하는데, 웹 서버 프로그램은 웹 브라우저와 통신할 때 HTTP란 프로토콜을 사용함
HTML(Hypertext Markup Language):
웹 브라우저가 화면에 표시할 수 있는 문서의 한 종류이자 웹 페이지를 위한 표준 언어
웹 기반 API는 HTTP 프로토콜을 사용하지만 HTML을 주고받는 것이 아니라 일반적으로 CSV, JSON, XML 같은 파일을 사용
HTML 소스의 구조가 비교적 복잡하며, 주고받는 데이터가 복잡한 구조를 가지면 프로그램에 버그가 생길 가능성이 높음
디버깅시 HTML은 너무 장황해서 쉽게 이해하기가 어려움
파이썬에서 JSON 데이터 다루기
JSON(JavaScript Object Notation)
json.dumps() : 파이썬 객체를 JSON 문자열로 변환
import json
d = {"name": "혼자 공부하는 데이터 분석"} #JSON 형식은 키와 값에 큰따옴표를 사용
d_str = json.dumps(d, ensure_ascii=False) #기본적으로 json.dumps() 함수는 아스키 문자 외의 다른 문자를 16진수로 출력하기 때문에 한글이 제대로 보이지 않음
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, 'html.parser') # 첫 번째 매개변수는 파싱할 HTML 문서, 두 번째는 파싱에 사용할 파서
파서parser: 입력 데이터를 받아 데이터 구조를 만드는 소프트웨어 라이브러리
find(): 지정된 이름의 첫번째 태그 찾기
prd_link = soup.find('a', attrs={'class':'gd_game'}) #첫 번째 매개변수: 찾을 태그명, 두 번째 매개변수: 태그의 속성을 딕셔너리로 지정
find_all(): 지정된 이름의 모든 태그를 리스트로 가져오기
prd_tr_list = prd_detail.find_all('tr')
apply(): 데이터프레임 행 혹은 열에 함수 적용
merge(): 데이터프레임과 시리즈 합치기
기본미션: p. 150의 확인 문제 1번 풀고 인증하기
1. 다음과 같은 데이터프레임 df가 있을 때 loc 메서드의 결과가 다른 하나는 무엇인가요? (1)df.loc[[0,1,2],['col1', 'col2']] (2)df.loc[0:2, 'col1:col2'] (3)df.loc[:2, [Ture, True]] (4)df.loc[::2, 'col1':'col2']
정답: (4) loc 메서드에서는 파이썬의 슬라이싱처럼 유사하게 사용할 수 있는데, 차이점은 마지막 항목도 포함한다는 것. 또한 스텝 설정도 가능한데, 4번의 경우 스텝이 2로 설정되어, 행인덱스 1에 위치한 "col1": "b", "col2": "2"에 해당하는 데이터를 건너뛴다.
선택미션: p. 137 ~ 138 손코딩 실습으로 원하는 도서의 페이지 수를 추출하고 화면 캡처하기
그동안 쓰던 BeautifulSoup 방식이랑 좀 달라서 시간이 걸렸다.
사실 그동안은 selenium에 대한 의존도가 너무 높았어서 처음으로 requests로 처리하느라 이것저것 찾아볼 게 좀 있었다.
pandas 패키지에 익숙해지는 게 사실 혼공분석을 시작한 이유였는데 점점 나아지는 것도 같아서 기분이 좋군~