WIL - 2

최민규·2023년 1월 12일
0

1월 첫째 주 WIL - Preview

0101 : 데이터 수집을 위한 판다스 기초
0102 : 추상화된 라이브러리 FinanceDataReader
0103 : 네이버 금융의 뉴스기사를 수집
0104 : 네이버 금융의 특정 종목의 일별시세를 수집

Pandas

  • pandas는 데이터 조작 및 분석을 위한 Python 라이브러리
  • 특히 숫자 테이블과 시계열을 조작하기 위한 데이터 구조 와 연산을 제공
  • 경제학 용어인 "패널 데이터"라는 용어에서 파생
import pandas as pd

실습별 키워드

0101 데이터 수집을 위한 판다스 기초

pd.DataFrame() : 비어있는 데이터 프레임 생성
pd.Series : 데이터 타입 확인하기
drop() : 데이터 프레임의 데이터 삭제
info() : 데이터 프레임의 정보 보기
shape : 데이터 프레임의 크기 출력
dtypes : 데이터의 타입 확인하기
describe : 데이터 프레임의 요약 정보
count : 결측치를 제외한 빈도수
unique : 유일값
top : 최빈값
freq : 최빈값의 빈도수
loc : 인덱스, 컬럼명으로 데이터 가져오기
iloc : 순서대로 값을 가져오기
str.contains() : 괄호 안의 값이 들어가는 문자 찾기
sort_values : 정렬하기

0102 추상화된 라이브러리 FinanceDataReader

0103 : 네이버 금융의 뉴스기사를 수집
f-string : url에서 필요한 부분에 f-string 처리를 하여 페이지가 변경되어도 유효한 url로 변환해준다.
pd.read.html() : 해당 사이트에 table 태그가 있으면 데이터를 가져온다.

0104 : 네이버 금융의 특정 종목의 일별시세를 수집
user-agent : 사용자의 웹 브라우저와 기기의 정보를 담고 있다.
requests : 외부 라이브러리, 웹 서버에서 HTML을 받아오기 위해 사용
get : 리소스 조회 방식, 쿼리 스트링을 통해서 데이터 전달
headers : 봇이 아닌 브라우저라는 것들 전달하기 위해 headers에 따로 값을 담아서 요청해야 데이터를 보내줌
BeautifulSoup : 외부 파싱 라이브러리
pd.read_html : table 데이터를 보기 쉽게 가져옴
drop_duplicate() : 중복값 제거
df.to_csv : csv 파일로 저장하기
pd.read_csv : 저장한 csv 파일 불러오기


회고

1. 코드 한줄이 이해가 안되면 끊어서 실행해보면 좋을 것 같다.

last_page = html.select("nav.board-paging > ul > li > a")[-1]["href"].split("=")[-1]

이게 이해가 안되면

last_page = html.select("nav.board-paging > ul > li > a")[-1]
last_page = html.select("nav.board-paging > ul > li > a")[-1]["href"]
last_page = html.select("nav.board-paging > ul > li > a")[-1]["href"].split("=")
last_page = html.select("nav.board-paging > ul > li > a")[-1]["href"].split("=")[-1]

이런 식으로 하나씩 지우고, 다시 붙여서 실행해보면서 결과의 변화를 보면 이해가 안되었던 부분들이 조금씩 이해가 되고, 어떤 값이 어떤 데이터를 불러오는지 등의 대략적인 구조가 보이는 것 같다.

2. 다른 수강생 분들의 코드를 참고해서 복습하면 좋을 것 같다.
결국 하나의 기능을 만들어내기 위해 정답은 없고, 다양한 시각과 방법으로 접근하면 의외의 지점에서 신선하고 효율적인 코드를 만들어낼 수 있지 않을까.

3. 슈도 코드를 먼저 작성해보는 습관을 들이자. (작성을 못하더라도 생각이라도)
물론 일단 작성하고 부딪히면서 코드가 굴러가게끔 하는 것이 처음 시작에는 성취감 면에서 좋을 것 같다. 하지만 이것이 습관이 되다보니 결국 어떤 논리, 목적으로 내가 이렇게 코드를 작성하게 되는 것인지 인지하지 못하다보니 혼자 작성하게 되거나 다른 곳에 적용할 때 기억이 나지 않는다.

4. 이전의 수업들을 이해하지 못했더라도 우선 오늘의 수업에 집중하자.
당연히 학습이 누적되지 못해서 구체적으로 이해되지 않을 수는 있지만 적어도 논리적인 시퀀스는 따라갈 수 있으니 복습 후에 오늘의 것을 다시 만났을 때 전체적인 흐름이 기억나서 뒤늦게라도 이해할 수 있는 발판이 된 것 같다. (물론, 아직도 모르는게 너무 많다..)

5. 필기하는 데에 집착하지 말자.
수업을 따라가면서 필기를 한번에 완벽한 형태로 하는 것은 애초에 불가능하고, 성공한다고 해도 머릿 속에 남지 않을 가능성이 크다. 일단 실습 위주로 따라가고 이해가 안가는 부분을 가능하면 질문, 그렇지 않다면 짧은 메모로 남겨두어 나중에라도 찾아볼 수 있게 하면 된다.

profile
안녕

0개의 댓글