멋쟁이 사자처럼 AI School 8기 - WIL-5주차

JiWOn·2023년 1월 19일
0
post-thumbnail

5주차 일정

    • 이범재 강사님 - SQL 작업환경, 기초배우고 연습문제로 익히기
    • 박조은 강사님 - 데이터 수집
      • 대통령 연설문 파일 목록과 내용 수집
    • 박조은 강사님 - Jupyter, 데이터 수집
      • 서울 120 콜센터 민원(자주 묻는 질문)과 내용 수집
    • 박조은 강사님 - API, JSON 데이터 수집
      • ETF페이지, 서울 데이터 API로 데이터 수집과 전처리
    • 인사이트 데이

학습 내용

📝20230113 이범재 강사님 SQL 수업내용 필기
📝20230116 박조은 강사님 수업내용 필기
📝20230117 박조은 강사님 수업내용 필기
📝20230118 박조은 강사님 수업내용 필기

일주일 내용 키워드 정리

BeautifulSoup으로 a 태그 찾기

  • select()
    • selector로 찾기
html.select('tr > td.subject > a')
  • find_all()
html.find_all('td',{'class':'subject'},)

반복문 한 줄 코드로 바꾸기

a_link_no=[]
for val in a_list:
    a_link_no.append(val['href'].split('/')[-1])

🔽

a_link_no = [a_list[i]['href'].split('/')[-1] for i in range(len(a_list))]

BeautifulSoup 함수 모음집

  • select한 값에서 text만 불러오기
    • text
    • 태그도 다 지우기
      • text.strip()

**enumerate 함수**

  • 리스트가 있는 경우 순서와 리스트의 값을 전달하는 기능.
  • 이 함수는 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 return
  • 보통 enumerate 함수는 for문과 함께 자주 사용됩니다.

예외 처리

선택한 예외를 처리하는 프로그램

  • 기본 형태
try :
    # 오류가 나는지 볼 코드
except Exception:
    # 에러가 나면 이렇게 할 것이다, 이렇게 반환할 것이다 코드
  • Exception 생략도 가능하다
    • 오류의 종류에 관계없이 오류가 발생하면 except블록을 실행
  • Exception 대신 발생 오류만 포함한 Except문을 만들 수 있다.
    • 발생 오류가 생겼을 때, 어떻게 할 것인지 블록문을 설정할 수 있다.
  • 발생오류 + 오류변수
    • 발생오류 as 오류변수
    • 오류 변수를 적어주면 except블록에서 발생오류를 불러올 수 있다.
  • 여러개의 오류가 발생했을 때
try:
   ...
except 발생오류1:
   ... 
except 발생오류2:
   ...

프레임 관련 함수 모음집

  • set_index() 표에 인덱스를 지정하는 방법
  • transpose() == T를 사용해서 전치행렬을 만드는 방법
  • concat() 을 사용해서 데이터프레임을 합치는 방법
    • 속성
      • axis = 0이라면 세로로 붙여줌 컬럼값이 같아야함
      • axis = 1이라면 index 값 기준으로 컬럼(열)로 붙여주기 때문에 index값이 같아함
      • ignore_index = True : 그 인덱스 값을 무시하고 다시 순차적으로 부여하게 해줌. 기존인덱스 값을 사용하냐 안하냐의 차이
  • 요약
    • df.info
    • df.describe()

merge

기존 데이터와 병합하여 내용이 함께 수집된 것을 확인한다.

인덱스와 컬럼이 같을 땐 concat
그 외 병합 → merge

  • inner join = 교집합만 모음
  • how = 'left' 내용 번호가 중간에 누락되어 수집이 되지 않은 건이 있다면 결측치로 보이게 합니다.
  • how = 'right' 내용 번호는 수집되었지만 목록에 없는 경우 목록 내용이 결측치로 보이게 된다

merge 는 컬럼. 혹은 인덱스 기준으로 병합한다.
join 도 비슷하지만 인덱스 기준으로 병합한다.

소감

SQL과 데이터 수집 및 전처리까지 해보는 주였다.
새로운 내용의 SQL를 공부하는 건 매우 재밌었다.
기초였기 때문이였을까? 처음이라 쉬웠고 괜찮았다.

월요일부턴 데이터 수집에 막바지였다.
점차 심화된 내용으로 들어가서 어려웠고 따라가는데 벅참이 있었다.
오늘 WIL 정리하면서 복습하게 되어서 다시 머리에 집어 넣을 수 있었다.
특히 API 부분은 수업때도 간단하게 넘어갔는데
다시 공부해볼 필요가 있을 것 같다.

0개의 댓글