본문 바로가기
주식공부 feat. 파이썬

8. 주가 데이터 엑셀로 한꺼번에 다운로드 feat. 파이썬 반복문 for

by 에쓰지 2022. 4. 23.

 

지난 회차에 쥬피터 노트북을 사용하여 종목별 주요 정보라 할 수 있는 PER,EPS,PBR,BPS 등 을 엑셀로 다운로드 받는 법을 알아봤습니다.

2022.04.19 - [주식공부 feat. 파이썬] - 7. 주가 데이터 엑셀로 다운로드 확장판 feat. EPS PER BPS PBR

 

7. 주가 데이터 엑셀로 다운로드 확장판 feat. EPS PER BPS PBR

지난 회차에 쥬피터 노트북을 사용하여 다운로드 받은 엑셀 주가 데이터 분석을 위해 사용하는 판다스 describe( ) 를 통하여 평균, 최고치, 최저치 등을 알아봤습니다. 2022.04.09 - [주식공부 feat. 파

pmxsg.tistory.com

 

이번 회차에는 원하는 종목들을 한꺼번에 엑셀로 다운로드 받는 법을 알아보겠습니다.

 

>>>  주가 데이터 엑셀로 한꺼번에  다운로드   

         feat. 등락율+거래량

 

1. 주가 데이터 엑셀로 받기

2022.04.02 - [주식공부 feat. 파이썬] - 5. 주가 데이터 엑셀로 다운로드 받기 확장판 feat.등락률 + 거래량

 

5. 주가 데이터 엑셀로 다운로드 받기 확장판 feat.등락률 + 거래량

지난 회차에 쥬피터 노트북을 사용하여 주가 데이터를 엑셀로 다운로드 받을 때 이동평균을 더하는 방법을 알아봤습니다. 2022.03.30 - [주식공부 feat. 파이썬] - 4. 주가 데이터 엑셀로 다운로드 받

pmxsg.tistory.com

지난 회차들을 통해서 주가 데이터를 엑셀로 받을 수 있는 방법들을 알아봤었습니다.

이번 회차에는 한꺼번에 원하는 종목들을 한꺼번에 받는 것을 알아보고자 합니다.

대상은 4월 15일자 코스피 시가총액 14위 부터 18위까지 입니다.

from pykrx import stock

df = stock.get_market_ohlcv("20210401", "20220415", "323410")
df.to_excel('Stocks/카카오뱅크.xlsx')

1 종목씩 받고자 한다면, 위와 같은 코드를 반복해서 만들어야 합니다.

이를 파이썬의 반복문을 이용하여, 한꺼번에 5개의 파일을 만들어 보겠습니다.

import pandas as pd
from pykrx import stock

stocks = { "카카오뱅크":"323410", "셀트리온":"068270","신한지주":"055550","LG전자":"066570","삼성물산":"028260"}

for key in stocks:
    code = stocks[key]
    df = stock.get_market_ohlcv("20210401", "20220415", code)   
     
    df.to_excel(f"Stocks/{key}0.xlsx")

 

코드는 위와 같습니다.

(1) 파이썬(Python) - 자료형태 Dictionary​

위 코드에서 stocks = { } 안에 원하는 종목이름과 종목코드를 { } 안에, { "종목이름" : "종목코드" } 형식으로 넣어주시면 됩니다.

이 코드에 대해서 잠깐 설명하자면,

파이썬의 자료 형태 중에 딕셔너리(Dictionary) 라고 하는데, 단어 그대로 해석하면 사전이라는 뜻입니다. 영어 사전을 보면 단어가 있으면 그에 대응하는 설명이 있는 형태입니다. 예를 들어 " Book"에 대응하는 한국어는 "책" 으로 연결되는 형태의 자료형이라는 뜻입니다. 통상 앞에 있는 값을 Key라 부르고 이에 대응하는 값을 value로 부르며 한 쌍으로 움직입니다.

여기서는 "카카오뱅크" 가 Key가 되고 종목코드인 "323410"은 value가 됩니다.

"stocks" 라는 이름의 딕셔너리 자료에 카카오뱅크,셀트리온,신한지주,LG전자,삼성물산의 종목코드를 저장해 두었다는 의미입니다.

자료를 구하고자 하는 종목들이 있으면, 다른 코드들은 변동시키지 않고 이 부분에만 { "종목이름" : "종목코드" } 형태로 바꾸어서 넣으시면 됩니다. 갯수도 원하시는 만큼 넣으시면 됩니다.

 

(2) 파이썬(Python) - 반복문 for​

이제 위 stocks 안에 있는 종목들을 반복문을 통해서 실행시키면 됩니다.

파이썬의 대표적인 반복문은 for 를 사용하여 만듭니다.

기본구조는

for 변수 in 리스트 :

수행할 작업

형태입니다.

유의할 사항은 " : " 콜론을 끝에 넣어줘야합니다. 깜박 잊는 경우가 있습니다.

그리고 다음줄 수행할 작업은 들여쓰기를 꼭 해야합니다. 통상 탭키 (스페이스 4칸) 정도 들여쓰기를 하는데, 쥬피터 노트북에서는 자동으로 들여쓰기를 해줍니다. 혹시 다른 데는 문제가 없는데 에러가 나면 이 부분을 확인해 보시기 바랍니다.

위 반복문 코드를 한 줄씩 번역하자면,

" for key in stocks: " - stocks안의 key값을 key라는 변수 안에 순차적으로 실행하라. key 변수안에는 "카카오뱅크,셀트리온,신한지주,LG전자,삼성물산" 이 들어가게 됩니다.

"code = stocks[key] " - key의 value 값을 code라는 변수로 실행하라. 즉, "323410", "068270", "055550", "066570", "028260" 이 순차적으로 실행됩니다.

" df = stock.get_market_ohlcv("20210401", "20220415", code) " - code에는 "323410"이 먼저 들어가 실행합니다.

"df.to_excel(f"Stocks/{key}0.xlsx") " - key변수 이름으로 파일저장. 즉, "카카오뱅크0.xlsx"로 저장됩니다.

이후 다시 처음 으로 돌아가 " for key in stocks: " 에서 셀트리온이 실행됩니다. 그 후에 신한지지, LG전자, 삼성물산 순으로 반복하고 더 이상 실행할 작업이 없기 때문에 끝이 납니다.

 

 2.  이동평균 추가 및 그래프 그리기 코드

import pandas as pd
from pykrx import stock

stocks = { "카카오뱅크":"323410", "셀트리온":"068270","신한지주":"055550","LG전자":"066570","삼성물산":"028260"}

for key in stocks:
    code = stocks[key]
    df = stock.get_market_ohlcv("20210401", "20220415", code)
    df['등락률'] = df['종가'].pct_change()
    df['5일_이동평균']=df['종가'].rolling(5).mean()
    df['20일_이동평균']=df['종가'].rolling(20).mean()
    df['60일_이동평균']=df['종가'].rolling(60).mean()
    df['120일_이동평균']=df['종가'].rolling(120).mean()
    df.to_excel(f"Stocks/{key}.xlsx")

 위에 실행했던 다운로드 코드 밑에 등락률과 이동평균 코드를 추가합니다.

반복문 밑에 들여쓰기를 맞추어 넣어주면 됩니다.

from pykrx import stock
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib
matplotlib.rcParams['font.family'] ='Malgun Gothic' 
matplotlib.rcParams['font.size'] = 15
matplotlib.rcParams['axes.unicode_minus'] = False 

stocks = { "카카오뱅크":"323410", "셀트리온":"068270","신한지주":"055550","LG전자":"066570","삼성물산":"028260"}

for key in stocks:
    df=pd.read_excel(f"Stocks/{key}.xlsx")
    plt.figure(figsize=(15,10))
    plt.xticks(rotation=45)
    plt.plot(df['날짜'],df['종가'], label='종가', linewidth=3, color='#CD5C5C')
    
    plt.xlabel('20210401~20220414', color='#CD5C5C', loc='right') #left, center, right
    plt.ylabel('단위: 원', color='#CD5C5C', loc='top') # top, center, bottom
    plt.legend()
    plt.title(f"{key}", color='green')
    plt.grid(axis='y',linestyle='--',color='purple')
    plt.savefig(f"Stocks/{key}.png",dpi=100)

    plt.figure(figsize=(15,5))

    plt.bar(df['날짜'],df['거래량'], color='green')
    plt.title(f"{key} 거래량")
    plt.xlabel('20210401~20220412', color='green', loc='right') #left, center, right
    plt.ylabel('단위: 1,000,000주', color='green', loc='top') # top, center, bottom
    plt.grid(axis='y')
    plt.savefig(f"Stocks/{key} 거래량.png",dpi=100)

그래프를 그릴 때도 반복문 for 밑에 들여쓰기를 해서 넣어주면 됩니다.

위 코드를 실행하면 ( CNTL+Enter ),

순식간에 10개의 그래프를 만들었습니다.

 3. 이동 평균 그래프 

위에서 만들었던 이동평균을 포함한 엑셀데이터를 이용하여 이동평균 그래프를 그립니다.

for key in stocks:
    df=pd.read_excel(f"Stocks/{key}.xlsx")
    plt.figure(figsize=(15,10))
    plt.xticks(rotation=45)
    plt.plot(df['날짜'],df['종가'], label='종가', linewidth=3, color='#CD5C5C')
    plt.plot(df['날짜'],df['5일_이동평균'], label='5일 이동평균')
    plt.plot(df['날짜'],df['20일_이동평균'], label='20일 이동평균')
    plt.plot(df['날짜'],df['60일_이동평균'], label='60일 이동평균')
    plt.plot(df['날짜'],df['120일_이동평균'], label='120일 이동평균')
    plt.xlabel('20210401~20220414', color='#CD5C5C', loc='right') #left, center, right
    plt.ylabel('단위: 원', color='#CD5C5C', loc='top') # top, center, bottom
    plt.legend()
    plt.title(f"{key}", color='green')
    plt.grid(axis='y',linestyle='--',color='purple')
    plt.savefig(f"Stocks/{key}1.png",dpi=100)

 



엑셀 파일 + 그래프

위 코드들을 실행해서 나온 결과물이 총 25개 파일 입니다. 걸린 시간은 총 1분이 걸리지 않습니다.

관심있는 종목들을 정해서 코드 세팅을 해 놓으면 자료를 얻는 데 들어가는 시간이 확 줄어들겁니다.

유용하다 생각되시면 코드는 언제든 가져다 쓰시기 바랍니다.

각 종목별로 나누어 포스팅을 해 놓겠습니다.

 

 종목별 분석자료 

 

 

1. 삼성전자 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.03.31 - [주식공부 feat. 파이썬/종목별 분석] - 2. LG에너지 솔루션 분석 자료 정리 feat. 파이썬

 

2. LG에너지 솔루션 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.03.31 - [주식공부 feat. 파이썬/종목별 분석] - 3. SK 하이닉스 분석 자료 정리 feat. 파이썬

 

3. SK 하이닉스 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.02 - [주식공부 feat. 파이썬/종목별 분석] - 4. 네이버 분석자료 정리 feat. 파이썬

 

4. 네이버 분석자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.04 - [주식공부 feat. 파이썬/종목별 분석] - 5. 삼성바이오로직스 분석 자료 정리 feat. 파이썬

 

5. 삼성바이오로직스 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.04 - [주식공부 feat. 파이썬/종목별 분석] - 6. 삼성전자 우선주 분석 자료 정리 feat. 파이썬

 

6. 삼성전자 우선주 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.09 - [주식공부 feat. 파이썬/종목별 분석] - 7. 카카오 분석 자료 정리 feat. 파이썬

 

7. 카카오 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.09 - [주식공부 feat. 파이썬/종목별 분석] - 8. 삼성 SDI 분석 자료 정리 feat. 파이썬

 

8. 삼성 SDI 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.20 - [주식공부 feat. 파이썬/종목별 분석] - 9.현대자동차 분석 자료 정리 feat. 파이썬

 

9.현대자동차 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.21 - [주식공부 feat. 파이썬/종목별 분석] - 10. LG 화학 분석 자료 정리 feat. 파이썬

 

10. LG 화학 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.21 - [주식공부 feat. 파이썬/종목별 분석] - 11. 기아 분석 자료 정리 feat. 파이썬

 

11. 기아 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.22 - [주식공부 feat. 파이썬/종목별 분석] - 12. POSCO 홀딩스 분석 자료 정리 feat. 파이썬

 

12. POSCO 홀딩스 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

2022.04.22 - [주식공부 feat. 파이썬/종목별 분석] - 13. KB 금융 분석 자료 정리 feat. 파이썬

 

13. KB 금융 분석 자료 정리 feat. 파이썬

파이썬 공부 중에 주식 분석을 할 수 있는 코드들을 알게 되었고 알고만 있다면 바로 잊어버릴 수도 있고 해서 블로그에 하나씩 알게된 코드를 올려보려 합니다. 파이썬에 대해서 전혀 몰라도

pmxsg.tistory.com

 

댓글