오늘은 파이썬을 이용해 MySQL 에 접속을 해서 데이터를 가져와보고, 간단하게 차트도 하나 그려보겠습니다.
아무래도, 요즘에 신입 취업을 위해서는 파이썬도 거의 필수가 되어가는 느낌입니다.
부지런히 준비할 필요가 있습니다.~!
파이썬의 장점 중에 하나는 많은 모듈들이 제공되고 있고, 모듈만 잘 활용하면 정말 손쉽게 기능을 구현할 수 있다는 점입니다. DB연결 및 차트 그리는 과정도 마찬가지입니다.
여기서는 파이썬을 이용해 '평생 필요한 데이터 분석'의 DB_SQLSTK 데이터베이스에 접속을 합니다.
저 같은 경우는 Anaconda와 PyCharm을 설치해서 사용하고 있습니다. Anaconda는 파이썬의 주요 모듈을 모아놓은 패키지라고 생각하시면 됩니다. 파이썬 대신에 Anaconda를 설치하시면 됩니다. PyCharm은 파이썬 코딩을 할 수 있는 툴이라고 생각하시면 됩니다.
Anaconda의 경우 32비트와 64비트 버젼이 있습니다. 만약에 나중에 증권사 API를 통해 주식 데이터를 모으는 작업도 진행할 예정이라면 32비트를 설치하는 것이 좋습니다. 반면에 머신러닝등의 작업을 할 예정이라면 64bit 버젼을 설치해야 합니다. 64비트를 설치한 후에 가상환경을 만들어 32비트 모듈도 별도 처리할 수 있다고 하니 참고바랍니다.(저는 그렇게 해본적은 없고 그냥 32비트를 사용중입니다.)
아나콘다는 아래 사이트에서 다운로드 할 수 있습니다.
파이참은 아래 사이트에서 다운로드할 수 있습니다.
https://www.jetbrains.com/ko-kr/pycharm/
그러면, 본격적으로 MySQL에 접속해서 간단한 차트까지 그려보겠습니다.
가장 먼저 할일은 필요한 모듈을 import하는 것입니다. 아래와 같습니다.
import pymysql #mysql 연결및 실행을 위한 모듈
import pandas as pd
import matplotlib.pyplot as plt #차트 처리를 위한 모듈
이번에는 파이썬에서 MySQL에 접속해보도록 하겠습니다. 아래와 같습니다.
# MySQL 연결 처리
myMyConn = pymysql.connect(user='root', password='1qaz2wsx', host='localhost', port=3306,charset='utf8', database='DB_SQLSTK')
myMyCursor = myMyConn.cursor()
MySQL에 실행할 SQL을 만들어봅니다. 앞에서 설명했듯이, 평생필요한 데이터 분석의 DB_SQLSTK의 테이블을 조회합니다. 아래와 같습니다.
# 실행할 SQL 생성
sql = """
SELECT T1.STK_CD ,T1.STK_NM
,T2.DT
,T2.C_PRC
,T2.O_PRC
,T2.H_PRC
,T2.L_PRC
,T2.VOL
FROM DB_SQLSTK.STOCK T1
INNER JOIN DB_SQLSTK.HISTORY_DT T2
ON (T2.STK_CD = T1.STK_CD)
WHERE T1.STK_NM = '삼성전자'
"""
SQL을 실행하고, 결과를 바로 DataFrame에 저장합니다. DataFrame(DF)를 Print해보면 테이블 형태로 데이터가 저장된 것을 알 수 있습니다.
# DataFrame에 SQL 결과 저장
df = pd.read_sql(sql, myMyConn)
# 결과 출력
print(df)
여기까지, MySQL에 접속해서 SQL까지 실행해봤습니다.
마지막으로, 가져온 데이터에서 C_PRC(종가)만 Series 객체에 담은 후에 차트로 그려보도록 하겠습니다. 아래와 같습니다.
# 차트로 처리할 항목을 Series에 별도로 담는다.
c_prc = df['C_PRC']
c_prc.index = df['DT']
plt.figure(figsize=(11,9))
c_prc.plot(label='Close Price', title= "Samsung Close Price")
plt.legend(loc='lower left')
plt.grid(True)
plt.show()
아래와 같은 삼성전자의 종가 차트를 손쉽게 만들어 낼 수 있습니다.
전체 소스는 아래와 같습니다.
import pymysql
import pandas as pd
import matplotlib.pyplot as plt
# MySQL 연결 처리
myMyConn = pymysql.connect(user='root', password='1qaz2wsx', host='localhost', port=3306,charset='utf8', database='DB_SQLSTK')
myMyCursor = myMyConn.cursor()
# 실행할 SQL 생성
sql = """
SELECT T1.STK_CD ,T1.STK_NM
,T2.DT
,T2.C_PRC
,T2.O_PRC
,T2.H_PRC
,T2.L_PRC
,T2.VOL
FROM DB_SQLSTK.STOCK T1
INNER JOIN DB_SQLSTK.HISTORY_DT T2
ON (T2.STK_CD = T1.STK_CD)
WHERE T1.STK_NM = '삼성전자'
"""
# DataFrame에 SQL 결과 저장
df = pd.read_sql(sql, myMyConn)
# 결과 출력
print(df)
# 차트로 처리할 항목을 Series에 별도로 담는다.
c_prc = df['C_PRC']
c_prc.index = df['DT']
plt.figure(figsize=(11,9))
c_prc.plot(label='Close Price', title= "Samsung Close Price")
plt.legend(loc='lower left')
plt.grid(True)
plt.show()
오늘은 여기까지입니다. 감사합니다.!
데이터를 분석하는 과정을 공부해보고 싶으신 분은 아래의 '평생 필요한 데이터 분석'의 교육 과정을 추천합니다. 교육을 통해 SQL을 배운다면, 위 내용을 좀 더 보강할 수도 있고, 자신만의 스타일로 분석을 할 수 있습니다. SQL을 완전히 자신의 것으로 만들 수 있는 교육이니 관심 가져보시기 바랍니다. 감사합니다.~!
https://cafe.naver.com/dbian/5259
'데이터분석 > D-Tech 데이터로 하는 재테크' 카테고리의 다른 글
등락률 업데이트하기 (0) | 2021.08.19 |
---|---|
LEAD와 LAG - 삼성전자 등락률 구하기 (0) | 2021.08.18 |
파이썬 - 주가 이력 데이터 받아오기 (0) | 2021.08.17 |
파이썬 - KRX 주식 종목 마스터 만들기 (0) | 2021.08.11 |
10년에 한 번 온다는 기회! - 바닥은 어디? (0) | 2021.07.24 |
지수ETF는 이평선을 타고? feat. 주식시장에서 살아남는 심리 투자 법칙 (0) | 2021.07.22 |
반전의 긴 아래 꼬리 음봉??? (0) | 2021.07.22 |
21년1분기 영업이익과 주가변화 (0) | 2021.07.06 |