프로그램
[파이썬] 주식 데이터 받는 방법
오디세이99
2022. 8. 2. 19:43
728x90
반응형
간단하게 다음 4가지 방법으로 주식 데이터를 받는 방법을 알아봅니다.
1) FinanceDataReader
2) pandas_datareader
3) yfinance
4) pykrx
1) FinanceDataReader
import FinanceDataReader as fdr import matplotlib.pyplot as plt start = '2010-01-01' end = '2022-07-31' code = '005930' name = '삼성전자' df_fdr = fdr.DataReader(code, start=start, end=end) df_fdr ![]() fig = plt.figure(figsize=(20, 10)) plt.rcParams['font.family'] = 'NanumGothic' plt.plot(df['Close'], label='Close') plt.title('Stock Trade(' + name + ':' + code + '[train:' + start + '~' + end + ']') plt.xlabel("Date") plt.ylabel("Price") plt.legend() plt.grid() ![]() # 상장폐지 종목 전체 리스트 delisting = fdr.StockListing('KRX-DELISTING') delisting ![]() |
2) pandas_datareader
import pandas_datareader as pdr import matplotlib.pyplot as plt start = '2010-01-01' end = '2022-07-31' code = '005930.KS' name = '삼성전자' df = pdr.DataReader(code, 'yahoo', start, end) df ![]() fig = plt.figure(figsize=(20, 10)) plt.rcParams['font.family'] = 'NanumGothic' plt.plot(df['Close'], label='Close') plt.title('Stock Trade(' + name + ':' + code + '[train:' + start + '~' + end + ']') plt.xlabel("Date") plt.ylabel("Price") plt.legend() plt.grid() ![]() |
3) yfinance
import matplotlib.pyplot as plt import yfinance as yf start = '2010-01-01' end = '2022-07-31' code = '005930.KS' name = '삼성전자' tixker = yf.Ticker('005930.KS') df = ticker.history(interval='1d', start=start, end=end) df ![]() fig = plt.figure(figsize=(20, 10)) plt.rcParams['font.family'] = 'NanumGothic' plt.plot(df['Close'], label='Close') plt.title('Stock Trade(' + name + ':' + code + '[train:' + start + '~' + end + ']') plt.xlabel("Date") plt.ylabel("Price") plt.legend() plt.grid() ![]() |
4) pykrx
from pykrx import stock import matplotlib.pyplot as plt start = '2010-01-01' end = '2022-07-31' code = '005930' name = '삼성전자' df = stock.get_market_ohlcv(start, end, code) df ![]() fig = plt.figure(figsize=(20, 10)) plt.rcParams['font.family'] = 'NanumGothic' plt.plot(df['종가'], label='Close') plt.title('Stock Trade(' + name + ':' + code + '[train:' + start + '~' + end + ']') plt.xlabel("Date") plt.ylabel("Price") plt.legend() plt.grid() ![]() # 기본적으로는 컬럼명이 한글로 되어 있습니다. 다음과 같이 컬럼명을 변경할 수 있습니다. df.columns = ['Open', 'High', 'Low', 'Close', 'Volume'] df ![]() |
728x90
반응형