BIG
- 이 강좌는 초심자 특히 전혀 프로그래밍에 대한 경험이 없는 분들을 대상으로 합니다.
( This course is for beginners, especially those with no programming experience. )
# -*- coding: utf-8 -*-
# from datetime import datetime
import datetime
import pandas as pd
import numpy as np
import pandas_datareader as pdr
import matplotlib
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt
# start = input("시작일자를 입력하세요: ")
# start = datetime(2022,1,1)
# end = datetime(2022,3,19)
start = datetime.date(2022,1,1)
# end = datetime.date(2022,3,19)
end = datetime.date.today()
# df = pdr.DataReader('005930.KS','yahoo',start,end)
df = pdr.DataReader('^KS11','yahoo',start,end)
df.rename(columns={'Adj Close':'Adj_Close'}, inplace=True)
dates =[]
for x in range(len(df)):
newdate = str(df.index[x])
newdate = newdate[0:10]
dates.append(newdate)
df['Date'] = dates
# print(df.index)
# print(df.columns)
# print(df)
for loopCnt_1 in range(0, len(df.index)):
rowText = str(df.Date[loopCnt_1])
rowText += "--" + str(df.High[loopCnt_1])
rowText += "--" + str(df.Low[loopCnt_1])
rowText += "--" + str(df.Open[loopCnt_1])
rowText += "--" + str(df.Close[loopCnt_1])
rowText += "--" + str(df.Volume[loopCnt_1])
rowText += "--" + str(df.Adj_Close[loopCnt_1])
# print( rowText )
# print( df['Date'] )
# print( df['Close'] )
# print(str(start)[0:10])
# print(str(end)[0:10])
# 폰트 설정
font_location = '/Users/yuk-youngmin/Library/Fonts/NanumGothic.otf' # For Mac
#font_location = 'C:/Windows/Fonts/NanumGothic.ttf' # For Windows
fm.fontManager.addfont(font_location)
font_name = fm.FontProperties(fname=font_location).get_name()
matplotlib.rc('font', family=font_name)
# 가로 20, 세로 10인 액자를 만듬.
plt.figure(figsize=(20, 8))
plt.title(str(start)[0:10] + " ~ " + str(end)[0:10] + " KOSPI 지수")
plt.xlabel(" Year month ")
plt.xticks(rotation=45)
plt.ylabel(" value ")
plt.plot(df['Date'] , df['Close'], marker="o")
plt.ylim([0, 3500])
plt.grid(True)
# ax = plt.subplot()
# ax.set_xticks(graph_data_month)
plt.show()
# for row in df.itertuples():
# print(row)
'''
stock = pdr.get_data_yahoo('035720.js', '2022-01-01', '2022.02.28')
print(stock)
#df = pdr.DataReader('주식 종목코드', 'yahoo')
'''
'''
# 회사명으로 주식 종목 코드를 획득할 수 있도록 하는 함수
def get_code(df, name):
code = df.query("name=='{}'".format(name))['code'].to_string(index=False)
# 위와같이 code명을 가져오면 앞에 공백이 붙어있는 상황이 발생하여 앞뒤로 sript() 하여 공백 제거
code = code.strip()
return code
# excel 파일을 다운로드하는거와 동시에 pandas에 load하기
# 흔히 사용하는 df라는 변수는 data frame을 의미합니다.
code_df = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download', header=0)[0]
# data frame정리
code_df = code_df[['회사명', '종목코드']]
# data frame title 변경 '회사명' = name, 종목코드 = 'code'
code_df = code_df.rename(columns={'회사명': 'name', '종목코드': 'code'})
# 종목코드는 6자리로 구분되기때문에 0을 채워 6자리로 변경
code_df.code = code_df.code.map('{:06d}'.format)
# ex) 삼성전자의의 코드를 구해보겠습니다.
code = get_code(code_df, '삼성전자')
# yahoo의 주식 데이터 종목은 코스피는 .KS, 코스닥은 .KQ가 붙습니다.
# 삼성전자의 경우 코스피에 상장되어있기때문에 '종목코드.KS'로 처리하도록 한다.
code = code + '.KS'
# get_data_yahoo API를 통해서 yahho finance의 주식 종목 데이터를 가져온다.
df = pdr.get_data_yahoo(code)
'''
LIST
'!!...Python' 카테고리의 다른 글
[python]2016 ~ 2021 삼성전자 임직원 현황 정보 가져오기 (0) | 2022.04.26 |
---|---|
[python]2021년 삼성전자 임직원 현황 정보 가져오기 (0) | 2022.04.26 |
[python]2017.01~2021.12 Monthly KOSPI INDEX (0) | 2022.03.30 |
[python]MicroSoft 에서 만든 Python 기초강좌 (0) | 2015.03.30 |
[참고] 점프 투 파이썬 Endless-Edition (0) | 2015.03.24 |