datascience/Finanace

yfinance를 활용한 주식 데이터 불러오기

patrck_jjh 2021. 4. 11. 19:01

 이번 글에서는 yahoo에서 금융데이터를 가져오는 yfinance모듈을 활용하여 삼성전자와 마이크로소프트 데이터를 가져와서 비교해보고자 한다.

 

 

 

yfinance모듈을 실행하기 전에 pip install yfinance와 pip install pandas-datareader를 실행하여 데이터를 불러오는데 필요한 모듈을 설치하자

 

from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override()

sec=pdr.get_data_yahoo('005930.KS',start='2019-04-11')
msft=pdr.get_data_yahoo('MSFT',start='2019-04-11')

 

삼성전자와 마이크로소프트 주가 데이터가 성공적으로 불러왔다는 출력값이 나온다

 

 

삼성전자를 불러오는 코드는 005930.KS, 마이크로소프트를 불러오는 코드는 MSFT이다. 2019년 4월 11일을 시작점으로 잡아서 2년 동안 주가 데이터를 불러왔다.

 

sec.head()

 

 

msft.head()

 

 

 

마이크로소프트는 달러로 표시되기 때문에 단위가 삼성전자 주가보다 절대적인 수치가 낮음을 알 수 있다.

 

 

 

import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

#한글폰트 적용
path = 'C:/Windows/Fonts/gulim.ttc'
font_name = fm.FontProperties(fname=path, size=50).get_name()
plt.rc('font', family=font_name)


# plt.plot(range(50), data, 'r')
# plt.title('시간별 가격 추이', fontproperties=fontprop)
# plt.ylabel('주식 가격', fontproperties=fontprop)
# plt.xlabel('시간(분)', fontproperties=fontprop)
# plt.show()

plt.plot(sec.index, sec.Close, 'b', label='삼성전자')
plt.plot(msft.index, msft.Close, 'r--', label='Microsoft')
plt.legend(loc='best')

 

불러온 데이터를 그대로 시각화한 결과 마이크로소프트의 절대적인 수치가 상대적으로 너무 작기에 변동성이 구분되지 않아 직선으로 나타난다.

 

 

 

 

 위와 같은 문제점을 해결하기 위해 shift 명령어를 활용하여 절대적인 주가 수준이 아닌 상승률로 값을 변환하여 비교해보자.

 

# shift?
type(sec['Close'])
sec['Close'].shift(1).head()  #데이터를 1만큼 lag

data.shift(n)을 적용하면 n만큼 데이터를 미룬다 

 

 

#shift활용하여 수익률로 표현
sec_dpc=(sec['Close']/sec['Close'].shift(1)-1)*100
sec_dpc.head()

msft_dpc = (msft['Close']/msft['Close'].shift(1)-1)*100
msft_dpc.iloc[0] = 0

 

.shift(1)을 적용하여  기존 데이터를 하루만큼 미루고 각각의 주가 데이터를 수익률로 데이터를 환산한다

 

$$\frac{오늘주가-어제주가}{어제주가}\times 100$$

 

 

 

plt.plot(sec.index, sec_dpc_cs, 'b', label='삼성전자')
plt.plot(msft.index, msft_dpc_cs, 'r--', label='Microsoft')
plt.legend(loc='best')
plt.xticks(rotation=45)
plt.show

 

 

수익률 기준으로 시각화결과 두 기업의 상관관계가 상당히 밀접함을 알 수 있다.

 

 

 

참고자료: 파이썬 증권데이터 분석

www.hanbit.co.kr/store/books/look.php?p_code=B7026921929