etc) 주식 - 2021년 9월 1주차 분봉 데이터

etc) 주식 - 2021년 9월 1주차 분봉 데이터

2021년 9월 1주차(210830 ~ 210903)의 일별 종목 요약 및 차트 분봉 데이터


제공되는 데이터는 다음과 같으며 파일을 읽어오는 예제코드는 etc) 주식 - 분봉 데이터 읽어오기(R/Py) 포스팅에서 R/Python 예제 모두 다루고 있으니 참고하도록 하자.
stock_kr_daily_m_210830_210903.zip 다운받기 [클릭]


데이터 설명

stock_list

일별 종목별 요약 데이터이며 각 변수별 국문/영문 내용은 다음과 같다.

영문 국문
1 stock_cd 유가증권 단축 종목코드
2 state_cd 종목 상태 구분 코드
3 stock_nm HTS 한글 종목명
4 price 주식 현재가
5 vs_y 전일 대비
6 vs_y_sign 전일 대비 부호
7 vs_y_rate 전일 대비 비율
8 cum_cnt 누적 거래량
9 cum_price 누적 거래 대금
10 sel_q 매도 잔량
11 sel_p 매도호가
12 buy_p 매수호가
13 buy_q 매수 잔량
14 con_ul_days 연속 상한 일수
15 con_ll_days 연속 하한 일수
16 con_up_days 연속 상승 일수
17 con_dn_days 연속 하락 일수
18 con_st_days 연속 보합 일수
19 biz_kr 업종 한글 종목명
20 theme_kr_1 소속 테마 한글명1
21 theme_kr_2 소속 테마 한글명2
22 theme_cd_1 소속 테마 코드1
23 theme_cd_2 소속 테마 코드2
24 call_cnt API 호출 횟수

stock_m

일별 종목별 분단위 차트 데이터

영문 국문
1 stock_cd 유가증권 종목 단축코드
2 cont_time 조회 시간
3 price 종가(59.99초 기준)
4 p_start 시작가
5 p_max 최고가
6 p_min 최저가
7 cum_cnt 누적 거래량
8 cont_cnt 체결 거래량

실습 예제

R

다음은 압축파일을 압축파일명과 같은 폴더에 푸는 코드이다.

1
2
3
4
library("data.table")
path_zip = list.files(pattern = "stock_kr_daily_m_.*?\\.zip$")[1]
path_unzip = strsplit(path_zip, split = "\\.")[[1]][1]
unzip(zipfile = path_zip, exdir = path_unzip)

일별 종목별 요약 데이터의 파일 목록을 확인하면 다음과 같다.

1
2
3
4
5
6
7
8
9
ls_list = list.files(path = path_unzip,
pattern = "list",
full.names = TRUE)
ls_list
## [1] "stock_kr_daily_m_210830_210903/stock_list_kr_20210830.csv"
## [2] "stock_kr_daily_m_210830_210903/stock_list_kr_20210831.csv"
## [3] "stock_kr_daily_m_210830_210903/stock_list_kr_20210901.csv"
## [4] "stock_kr_daily_m_210830_210903/stock_list_kr_20210902.csv"
## [5] "stock_kr_daily_m_210830_210903/stock_list_kr_20210903.csv"

각 파일을 하나씩 불러와 합치는 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
df_list = data.frame()
for(n in 1:length(ls_list)){
df_list_sub = fread(ls_list[n], encoding = "UTF-8", data.table = FALSE)
df_list = rbind(df_list, df_list_sub)
}
head(df_list, 2)
## stock_cd state_cd stock_nm price vs_y vs_y_sign vs_y_rate cum_cnt
## 1 300720 55 한일시멘트 235500 17500 2 8.03 54863
## 2 021320 55 KCC건설 11500 850 2 7.98 337613
## cum_price sel_q sel_p buy_p buy_q con_ul_days con_ll_days
## 1 12768400500 148 235500 235000 212 0 0
## 2 3800559900 3510 11550 11500 2748 0 0
## con_up_days con_dn_days con_st_days biz_kr theme_kr_1 theme_kr_2
## 1 5 0 0 비금속광물
## 2 3 0 0 건설 건설사(중소형)
## theme_cd_1 theme_cd_2 call_cnt
## 1 NA NA 1375
## 2 322 NA 1375

일별 종목별 분봉 데이터의 파일 목록을 확인하면 다음과 같다.

1
2
3
4
5
6
7
8
9
ls_chart = list.files(path = path_unzip,
pattern = "m",
full.names = TRUE)
ls_chart
## [1] "stock_kr_daily_m_210830_210903/stock_m_20210830.csv"
## [2] "stock_kr_daily_m_210830_210903/stock_m_20210831.csv"
## [3] "stock_kr_daily_m_210830_210903/stock_m_20210901.csv"
## [4] "stock_kr_daily_m_210830_210903/stock_m_20210902.csv"
## [5] "stock_kr_daily_m_210830_210903/stock_m_20210903.csv"

각 파일을 하나씩 불러와 합치는 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
df_chart = data.frame()
for(n in 1:length(ls_list)){
df_chart_sub = fread(ls_chart[n], encoding = "UTF-8", data.table = FALSE)
df_chart = rbind(df_chart, df_chart_sub)
}
head(df_chart, 2)
## stock_cd cont_time price p_start p_max p_min cum_cnt cont_cnt
## 1 300720 150000 234500 234500 234500 234500 51840 10
## 2 300720 145900 235000 234500 235000 234500 51830 34

Python

다음은 압축파일을 압축파일명과 같은 폴더에 푸는 코드이다.

1
2
3
4
5
6
7
import os
import zipfile
import pandas as pd

path_zip = [path for path in os.listdir() if (path[:17] == "stock_kr_daily_m_") & (path[-3:] == "zip")][0]
path_unzip = path_zip.split(sep = ".")[0]
zipfile.ZipFile(path_zip).extractall(path_unzip)

일별 종목별 요약 데이터의 파일 목록을 확인하면 다음과 같다.

1
2
3
4
5
6
7
ls_list = [path for path in os.listdir(path_unzip) if path[6:10] == "list"]
ls_list
## ['stock_list_kr_20210830.csv',
## 'stock_list_kr_20210831.csv',
## 'stock_list_kr_20210901.csv',
## 'stock_list_kr_20210902.csv',
## 'stock_list_kr_20210903.csv']

각 파일을 하나씩 불러와 합치는 코드는 다음과 같다.

1
2
3
4
5
6
7
df_list = pd.DataFrame()
for n in range(len(ls_list)):
df_list_sub = pd.read_csv(path_unzip + "/" + ls_list[n])
df_list = pd.concat([df_list, df_list_sub])

df_list = df_list.reset_index(drop = True)
df_list.head(2)
stock_cd state_cd stock_nm price vs_y ... theme_kr_1 theme_kr_2 theme_cd_1 theme_cd_2 call_cnt
0 300720 55 한일시멘트 235500 17500 ... NaN NaN NaN NaN 1375
1 021320 55 KCC건설 11500 850 ... 건설사(중소형) NaN 322.0 NaN 1375

일별 종목별 분봉 데이터의 파일 목록을 확인하면 다음과 같다.

1
2
3
4
5
6
7
ls_chart = [path for path in os.listdir(path_unzip) if path[6:7] == "m"]
ls_chart
## ['stock_m_20210830.csv',
## 'stock_m_20210831.csv',
## 'stock_m_20210901.csv',
## 'stock_m_20210902.csv',
## 'stock_m_20210903.csv']

각 파일을 하나씩 불러와 합치는 코드는 다음과 같다.

1
2
3
4
5
6
7
df_chart = pd.DataFrame()
for n in range(len(ls_chart)):
df_chart_sub = pd.read_csv(path_unzip + "/" + ls_chart[n])
df_chart = pd.concat([df_chart, df_chart_sub])

df_chart = df_chart.reset_index(drop = True)
df_chart.head(2)
stock_cd cont_time price p_start p_max p_min cum_cnt cont_cnt
0 300720 150000 234500 234500 234500 234500 51840 10
1 300720 145900 235000 234500 235000 234500 51830 34
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×