Search

데이터 가져오기

웹에서 가져오기

html 웹 페이지에서 표 속성 가져오기

read_html() : html 웹 페이지에 있는 <table> 태그에서 표 형식의 데이터를 모두 찾아서 데이터프레임으로 변환한다.
표 데이터들은 별도의 데이터프레임으로 변환되기 때문에 결과는 여러 개의 데이터프레임을 원소로 갖는 리스트가 반환된다.
→ pd.read_html(”웹 주소” 또는 “html 파일 경로”)

웹 스크래핑

BeautifulSoup 등 웹 스크래핑 도구로 수집한 데이터를 판다스 데이터프레임으로 정리한다.
먼저, 스크래핑한 내용을 파이썬의 리스트, 딕셔너리 등으로 정리한 뒤 → pd.DataFrame() 함수에 전달하여 데이터프레임으로 변환한다.
# 위키피디아의 미국 ETF 리스트 데이터 -> 데이터프레임으로 변환하기 from bs4 import BeautifulSoup import requests import re import pandas as pd url = '' resp = requests.get(url) soup = BeautifulSoup(resp.text,'lxml') # 'lxml'은 파서 지정 rows = soup.select('div > ul > li') etfs = {} for row in rows: try: etf_name = re.findall('^(.*) \(NYSE', row.text) etf_market = re.findall('\((.*)\|', row.text) etf_ticker = re.findall('NYSE Arca\|(.*)\)', row.text) if (len(etf_ticker) > 0) & (len(etf_market) > 0) & (len(etf_name) > 0): etfs[etf_ticker[0]] = [etf_market[0], etf_name[0]] except AttributeError as err: pass # etfs 딕셔너리 출력 print(etfs) print('\n') # etfs 딕셔너리를 데이터프레임으로 변환 df = pd.DataFrame(etfs) print(df)
Python
복사

데이터베이스에서 판다스로 데이터 가져오기

판다스 read_sql() 함수를 사용하면 sql 쿼리를 가지고 데이터베이스로부터 데이터를 불러올 수 있다. 이때 읽어온 데이터는 데이터프레임 포맷으로 저장된다.

API 활용해서 데이터 수집하기