sm 기술 블로그

파이썬 Pandas DataFrame(LG전자 일별시세 뽑기) 본문

Python

파이썬 Pandas DataFrame(LG전자 일별시세 뽑기)

sm_hope 2022. 10. 13. 21:26

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