※ 늦게라도 "코딩을 배워여겠다는 사람이 있다면 혹시라도 도움일 될까해서 그 동안 알게 된 내용을 공유하려고 합니다.
지난 회차에 판다스 describe( ) 함수와 resample( ) 함수를 이용해 데이터의 기술통계량을 알아봤습니다.
2022.07.29 - [파이썬과 주식] - 8. 주가 데이터 분석하기 feat. Pandas-describe( ),resample( )
이번 회차에는 파이썬의 반복문을 이용해서 여러 종목의 주가 데이터를 한꺼번에 다운로드 하는 법을 알아보겠습니다.
1. 자료형(Data Type) - 사전형 Dictionary
Dictionary에 대해서는 이전 파이썬 개요 - 자료형(Data Type)에서 간단히 언급한 바 있습니다.
2022.06.09 - [파이썬과 주식] - 3. 파이썬 Python 개요 - 자료형(Data Type)
Dictionary의 특징은 key와 value가 한 쌍으로 이루어져 있다는 것입니다.
Dict = { key1 : value1 , key2 : value2, ...} key와 value는 콜론 ( : ) 으로 구분하고, 쉼표로 자료를 더하게 됩니다.
주가 종목을 key에는 종목명을 value에는 종목코드를 이용해 만들고자 합니다.
stocks = { "sk이노베이션" : "096770", "현대모비스":"012330","SK":"034730" }
stocks라는 변수에 SK이노베이션, 현대모비스,SK를 종목코드와 쌍으로 담았습니다.
value 값을 불러올 때는 "변수명["key"] " 을 사용하여 불러올 수 있습니다.
SK의 종목코드인 '034730'을 불러옵니다.
반복문을 사용할 때 종목과 종목코드로 이루어진 Dictionary를 이용하고자 합니다.
2. 문자열 포맷
파이썬에서는 복잡한 문자열을 손쉽게 출력을 위한 몇가지 방법이 있습니다.
▶ %를 이용한 방법
%는 파이썬에서 서식 지정자로 사용됩니다.
%로 시작하고 자료형을 뜻하는 문자가 붙습니다. %s ( String 문자 ), %d (decimal integer 숫자) 가 대표적인 사용법입니다.
print ( " %s 주가자료를 다운로드 합니다." %"SK" )
print("%d 개의 자료를 다운로드 받습니다." % 3)
▶ format( )을 이용하는 방법
문자열 안에 { }를 넣고 format( ) 안에 값을 넣으면 됩니다.
print ( " {} 주가자료를 다운로드 합니다.".format("SK") )
print("{}개의 자료를 다운로드 받습니다.".format(3))
여러개의 값을 넣을 수도 있습니다.
print ( " {},{},{} 주가자료를 다운로드 합니다.".format("sk이노베이션","현대모비스","SK"))
print ( " {0},{1},{2} 주가자료를 다운로드 합니다.".format("sk이노베이션","현대모비스","SK"))
print ( " {2},{0},{1} 주가자료를 다운로드 합니다.".format("sk이노베이션","현대모비스","SK"))
문자열내 { } 안에 인덱스를 넣으면 format안 순서대로 나타납니다.
print( "{stock}를 포함 {num}개의 주가자료를 다운로드 합니다.".format(stock= "sk이노베이션",num=3)
변수를 통하여 사용할 수도 있습니다.
▶ f-string 을 이용하는 방법
f-string은 문자열의 앞에 f 를 붙인 문자열입니다. { } 안에 변수의 이름을 바로 사용할 수 있습니다.
문자열 맨 앞에 f를 붙여주고, 중괄호 { } 안에 직접 변수나 값을 넣으면 됩니다.
stock= "sk이노베이션"
num = 3
print( f"{stock}를 포함 {num}개의 주가자료를 다운로드 합니다.")
여러 개 종목을 한꺼번에 다운로드 받을 때 f-string을 이용하여 코드를 만들려고 합니다.
3. 반복문 for
특정 코드를 반복해서 실행할 때 사용하는 기본 구문으로 문자열, 리스트, 딕셔너리 등과 조합해서 사용할 수 있습니다.
기본구조는
for 변수 in 순서형 데이터(문자열,리스트,딕셔너리 등) :
수행할 작업 실행문
형태입니다. 유의할 사항은 for문 첫줄 끝에 콜론( : )을 넣어줘야 합니다.
다음줄 수행할 작업은 들여쓰기를 꼭 해야합니다. 통상 탭키(스페이스 4칸) 정도 들여쓰기를 합니다.
먼저 리스트와 함께 반복문을 사용해 보겠습니다.
a = [1,2,3,4,5]
for i in a :
print( f" 대기번호는 {i}번 입니다.")
변수 a는 리스트형태로 1,2,3,4,5를 값으로 되어 있고,
for문 안에 변수 i에는 변수 a 에 들어있는 값이 차례로 실행됩니다.
앞서 만들었던 딕셔너리와 반복문을 연결해 보겠습니다.
stocks = { "sk이노베이션" : "096770", "현대모비스":"012330","SK":"034730" }
for i in stocks:
print(i ,":",stocks[i] )
변수 stocks 는 딕셔너리 타입입니다.
key : value 로 되어 있는 딕셔너리를 반복문과 연결되면 변수 i 에는 key 값을 반환합니다.value 값을 불러올 때는 "변수명["key"] " 을 사용하여 불러올 수 있습니다. 따라서 value값은 stocks[i] 로 그 값을 불러왔습니다.
4. 주가데이터 다운로드
주가 데이터 다운로드 받기에서 사용했던 코드 중에 하나를 선택해서 한꺼번에 여러 종목을 다운로드 하는 법을 알아보겠습니다.
2022.06.03 - [파이썬과 주식] - 2. 주가 데이터 다운로드 받기 ( 엑셀 / CSV )
import FinanceDataReader as fdr
df = fdr.DataReader('005930','2021-01-01','2022-06-27')
df.to_excel("삼성전자3.xlsx")
df.to_csv("삼성전자3.csv")
df
FinanceDataReader 라이브러리를 이용해서 다운로드 봤았던 코드입니다.
위 코드에 반복문을 사용하여 SK이노베이션, 현대모비스, SK 3 종목을 한꺼번에 다운로드 받아보겠습니다.
import FinanceDataReader as fdr
stocks = { "sk이노베이션" : "096770", "현대모비스":"012330","SK":"034730" }
for i in stocks:
code = stocks[i]
df = fdr.DataReader(code,'2021-01-01','2022-08-31')
df.to_csv(f"{i}.csv")
종목코드가 들어갈 변수를 code로 하고 stock[i]를 담았습니다.
다운로드 받는 함수에 종목코드가 들어갈 자리에 변수 code를 위치 시킵니다.
문자열 포맷팅의 f-string을 이용해서 저장될 파일명 자리에 변수 i 를 위치시키고 실행합니다.
3개의 csv 파일이 생성되는 것을 볼 수 있습니다.
다음 회차에는 반복문 안에 추가로 함수를 넣어 그래프도 함께 생성하는 법을 알아보겠습니다.
'파이썬과 주식' 카테고리의 다른 글
11. 파이썬 반복문을 이용한 주가 비교 (1) | 2022.09.13 |
---|---|
10. 파이썬 반복문을 이용한 주가 데이터 한꺼번에 다운로드 (2) (1) | 2022.09.06 |
8. 주가 데이터 분석하기 feat. Pandas-describe( ),resample( ) (0) | 2022.07.29 |
7. 주가 데이터 그래프 그리기(2) feat. Matplotlib (0) | 2022.07.16 |
6. 주가 데이터 그래프 그리기 (1) feat. Matplotlib (0) | 2022.07.11 |
댓글