본문 바로가기
판다스 강의(유튜브)/분류되지 않은 강의들

[파이썬주식] #02 필터링해서 주식데이터 수집하고 활용하기

by 김판다t 2022. 5. 23.

krx에서 오늘의 주식데이터를 다운받아 필터링해서 

FinanceDataReader로 개별종목의 기간별 ohlcv를 수집하여

pandas와 결합해 활용하는 강의입니다

 

해당 종목의 data를 손쉽게 수집할수 있습니다

 

 

강의보기

 

 

 


2023.12월에 확인해보니 fdr라이브러리에서 krx의 종목 코드열의 이름이 변경되었습니다.

기존은 Symbol열에 종목코드를 가지고 있었는데 지금은 Code열에 종목코드를 갖고 있습니다.

이미 판다스에 익숙한 분은 알고 계셨겠지만

강의 코드에서  df["Symbol"] 부분을 전부 df['Code']로 바꾸시면 코드 잘 돌아갑니다.

아래 코드는 바꾼 코드입니다

 

 

지난시간 코드

import FinanceDataReader as fdr
import pandas as pd

df_krx = fdr.StockListing('KRX').iloc[:, :3]
stocks = ["005930", "373220", "000660"]
df1 = pd.DataFrame()
for i in stocks:
    df = fdr.DataReader(i, '2022-03-30', "2022-04-30")
    df["Code"] = i
    df1 = pd.concat([df1, df])
df1.reset_index().merge(df_krx, how="left")

 

 

필터링에 사용할 주식정보가 담긴 csv파일 다운로드 (반드시 파이썬 파일과 같은 폴더에 다운받아주세요)

data_2121_20220518.csv
0.34MB

 

위 자료는 2022년 5월 18일 자료이므로

실습일 기준 자료가 필요하시면 영상에 따라 아래 홈페이지에서 파일을 다운 받으시면 됩니다

 

krx 홈페이지

http://data.krx.co.kr/contents/MDC/MAIN/main/index.cmd

 

KRX 정보데이터시스템

증권·파생상품의 시장정보(Marketdata), 공매도정보, 투자분석정보(SMILE) 등 한국거래소의 정보데이터를 통합하여 제공 서비스

data.krx.co.kr

 

 

 

 

위 지난 강의 코드의 stock부분만 아래로 바꾸면 각각의 필터링이 됩니다

 

 

시총 상위 10개종목

df2 = pd.read_csv("data_2121_20220518.csv").iloc[:, [0,1,2,6,10,12]]
stocks = df2.sort_values("시가총액", ascending=False).head(10)["종목코드"]

 

코스피 코스닥 코넥스 각 거래소별 시총상위 3개 종목

df2 = pd.read_csv("data_2121_20220518.csv").iloc[:, [0,1,2,6,10,12]]
df3 = df2.sort_values("시가총액", ascending=False)
stocks = df3.groupby("시장구분")["종목코드"].head(3)

 

코넥스를 제외한 코스피 코스닥 시총상위 3개종목

df2 = pd.read_csv("data_2121_20220518.csv").iloc[:, [0,1,2,6,10,12]]
df3 = df2.sort_values("시가총액", ascending=False).loc[df2["시장구분"]!="KONEX"]
stocks = df3.groupby("시장구분")["종목코드"].head(3)

 

25%이상 상승한 급등종목

df2 = pd.read_csv("data_2121_20220518.csv").iloc[:, [0,1,2,6,10,12]]
stocks = df2.loc[df2["등락률"] > 25, "종목코드"]

 

코스피 전부

df2 = pd.read_csv("data_2121_20220518.csv").iloc[:, [0,1,2,6,10,12]]
stocks = df2.loc[df2["시장구분"] == "KOSPI", "종목코드"]

 

코스닥 전부

df2 = pd.read_csv("data_2121_20220518.csv").iloc[:, [0,1,2,6,10,12]]
stocks = df2.loc[df2["시장구분"] == "KOSDAQ", "종목코드"]

 

 

 

 

 

 


 

2023.12월에 확인해보니 fdr라이브러리에서 krx의 종목 코드열의 이름이 변경되었습니다.

 

기존은 Symbol열에 종목코드를 가지고 있었는데 지금은 Code열에 종목코드를 갖고 있습니다.

 

이미 판다스에 익숙한 분은 알고 계셨겠지만

 

위 코드에서  df["Symbol"] 부분을 전부 df['Code']로 바꾸시면 코드 잘 돌아갑니다.

 

 

 

 

 

 

본 강의는 주피터 노트북 기반으로 만들어졌습니다.

vscode나 파이참 사용자는 print를 하셔야 출력됩니다.

스스로 문제 해결이 안되시는 초심자 분들은 강의환경을 꼭 주피터 노트북으로 맞추세요