sm 기술 블로그
파이썬 Pandas DataFrame(LG전자 일별시세 뽑기) 본문
Pandas DataFrame
: 인덱싱된 데이터의 2차원 배열
Series가 1차원이면 DataFrame은 2차원이다.
import pandas as pa
data = {"open": [737, 750], "high": [755, 780], "low": [700, 710], "close": [750, 770]}
df = pa.DataFrame(data , index=["2018-01-01", "2018-01-02"])
print(df)
다음과 같이 작성하면
위와 같은 형태로 출력을 한다.
이는 외부에서 테이블 형태의 데이터를 손쉽게 읽을 수 있다.
그 예로 한번 LG전자의 일별 시세를 뽑아보자.
LG전자 일별 시세 : https://finance.naver.com/item/sise_day.nhn?code=066570
먼저 사전작업이 필요하다.
pip install pandas
pip install lxml
pip install html5lib
pip install BeautifulSoup4
참고로 과거에는 read_html 로 바로 정보를 뽑을 수 있었지만 최근에 정책이 바뀌어 아래와 같이 적용해야한다.
import pandas as pd
from bs4 import BeautifulSoup as bs
import requests
def get_day_list():
url = f"https://finance.naver.com/item/sise_day.nhn?code=066570"
headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36'}
response = requests.get(url, headers=headers)
html = bs(response.text, "lxml")
table = html.select("table")
table = pd.read_html(str(table))
df_day = table[0].dropna()
return df_day
print(get_day_list())
<table> 코드를 만들어서 뽑아오는 것이다.
'Python' 카테고리의 다른 글
파이썬 Pandas Series (0) | 2022.10.13 |
---|---|
비트코인 시세 1초마다 불러오기 (파이썬) (0) | 2022.10.13 |
GUI(graphical user interface) (0) | 2022.10.13 |
[Python] '/' 와 '//'의 차이 (0) | 2022.06.26 |
집합자료형 (0) | 2022.06.21 |
Comments