본문 바로가기
파이썬과 주식

9. 파이썬 반복문을 이용하여 여러 종목 주가 데이터 받기(1)

by 에쓰지 2022. 9. 1.
※ 늦게라도 "코딩을 배워여겠다는 사람이 있다면 혹시라도 도움일 될까해서 그 동안 알게 된 내용을 공유하려고 합니다. 

지난 회차에 판다스 describe( ) 함수와 resample( ) 함수를 이용해 데이터의 기술통계량을 알아봤습니다.

2022.07.29 - [파이썬과 주식] - 8. 주가 데이터 분석하기 feat. Pandas-describe( ),resample( )

 

8. 주가 데이터 분석하기 feat. Pandas-describe( ),resample( )

※ 늦게라도 "코딩"을 배워야겠다는 사람이 있다면 혹시라도 도움이 될까해서 그 동안 알게 된 내용을 공유하려고 합니다. 지난 회차에 맵플로립(Matplotlib)을 이용하여 주가 데이터의 그래프를

pmxsg.tistory.com

이번 회차에는 파이썬의 반복문을 이용해서 여러 종목의 주가 데이터를 한꺼번에 다운로드 하는 법을 알아보겠습니다.


1. 자료형(Data Type) - 사전형 Dictionary 

 

Dictionary에 대해서는 이전 파이썬 개요 - 자료형(Data Type)에서 간단히 언급한 바 있습니다.

2022.06.09 - [파이썬과 주식] - 3. 파이썬 Python 개요 - 자료형(Data Type)

 

3. 파이썬 Python 개요 - 자료형(Data Type)

※ 늦게라고 "코딩"이란 것을 배워봐야 겠다는 사람이 있다면 혹시라도 도움이 될까해서 나의 경험담을 적어보려 합니다. 지난 회차에 파이썬 코드를 이용한 주가 데이터 다운로드 받는 것을 알

pmxsg.tistory.com

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 )

 

2. 주가 데이터 다운로드 받기 ( 엑셀 / CSV )

※ 늦게라도 "코딩"이란 것을 배워봐야겠다는 사람이 있다면 혹시라도 도움이 될까 해서 나의 경험담을 적어보려 합니다. 지난회차에 파이썬 Python을 사용할 환경설정을 위해서 아나콘다 Anaconda

pmxsg.tistory.com

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")

sk이노베이션.csv
0.03MB
현대모비스.csv
0.03MB
SK.csv
0.03MB

종목코드가 들어갈 변수를 code로 하고 stock[i]를 담았습니다.

다운로드 받는 함수에 종목코드가 들어갈 자리에 변수 code를 위치 시킵니다.

문자열 포맷팅의 f-string을 이용해서 저장될 파일명 자리에 변수 i 를 위치시키고 실행합니다.

3개의 csv 파일이 생성되는 것을 볼 수 있습니다.


다음 회차에는 반복문 안에 추가로 함수를 넣어 그래프도 함께 생성하는 법을 알아보겠습니다.

 

댓글