본문 바로가기
프로그램

[파이썬] 주식 데이터 받는 방법

by 오디세이99 2022. 8. 2.
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
반응형

댓글