taegon / marcap

market cap datasets (1995~2018 daily)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

데이터셋 - 시가총액 데이터

  • 한국거래소(KRX)에서 일자별 시가총액 순위 데이터
  • 1995년~2018년(23년간) 데이터를 일자별 가격 포함 (CSV)

본 문서는 개요 문서 입니다. 더 상세한 설명은 여기를 참고하세요

상장회사 시가총액 데이터

거래소의 시가총액 데이터는 특정 일자의 전종목, 시가총액, 주식수 등의 데이터를 포함하고 있습니다. 다음 링크로 바로 접근하거나 메뉴에서 다음과 같은 순서로접근할 수 있습니다.

http://marketdata.krx.co.kr/contents/MKD/04/0406/04060100/MKD04060100.jsp

시장정보 → 주식 → 순위정보 → 시가총액 상/하위

marcap Datasets

일자별 시가총액 데이터를 다운로드 하여 년도별 csv 파일로 묶은 데이터 세트

https://github.com/FinanceData/marcap

  • 1995-05-02 ~ 2018-10-31 시가총액 데이터
  • 10,473,005 rows X 17 columns

marcap Datasets Columns

  • Date : 날짜
  • Code : 종목코드
  • Name : 종명이름
  • Open : 시가
  • High : 고가
  • Low : 저가
  • Close : 종가
  • Volume : 거래량
  • Amount : 거래대금
  • Changes : 전일대비
  • ChagesRatio : 전일비
  • Marcap : 시가총액(백만원)
  • Stocks : 상장주식수
  • MarcapRatio : 시가총액비중(%)
  • ForeignShares : 외국인 보유주식수
  • ForeignRatio : 외국인 지분율(%)
  • Rank: 시가총액 순위 (당일)

데이터 가져오기

git 명령을 사용하여 깃허브 저장소를 복제(clone)한다.

! git clone "https://github.com/FinanceData/marcap.git" marcap
'marcap'에 복제합니다...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 76 (delta 1), reused 1 (delta 0), pack-reused 69
오브젝트 묶음 푸는 중: 100% (76/76), 완료.
연결을 확인하는 중입니다... 완료.
파일을 가져옵니다: 100% (27/27), 완료.
# 유틸함수 사용
from marcap.marcap_utils import marcap_date
from marcap.marcap_utils import marcap_date_range

df = marcap_date_range('2017-01-01', '2018-10-31')

print('row count:', len(df))
df.head()
row count: 1022346
Code Name Close Changes ChagesRatio Volume Amount Open High Low Marcap MarcapRatio Stocks ForeignShares ForeignRatio Rank Date
0 005930 삼성전자 1805000.0 3000.0 0.2 93012.0 1.679318e+11 1799000.0 1812000.0 1794000.0 2.539262e+14 16.77 140679337.0 71423750.0 50.77 1.0 2017-01-02
1 000660 SK하이닉스 45800.0 1100.0 2.5 1547681.0 7.074124e+10 44750.0 46000.0 44600.0 3.334251e+13 2.20 728002365.0 373685775.0 51.33 2.0 2017-01-02
2 005380 현대자동차 150000.0 4000.0 2.7 545854.0 8.135673e+10 146000.0 150500.0 145500.0 3.304147e+13 2.18 220276479.0 95830167.0 43.50 3.0 2017-01-02
3 005935 삼성전자우 1440000.0 7000.0 0.5 10822.0 1.556876e+10 1432000.0 1448000.0 1415000.0 2.953933e+13 1.95 20513427.0 15993799.0 77.97 4.0 2017-01-02
4 015760 한국전력공사 43900.0 -150.0 -0.3 745355.0 3.294252e+10 44200.0 44600.0 43850.0 2.818222e+13 1.86 641964077.0 200901131.0 31.29 5.0 2017-01-02
# 삼성전자(005930), 시가총액 비중의 변화
code = '005930'
df_stock = marcap_date_range('2017-01-01', '2018-12-31', code)
df_stock['MarcapRatio'].plot(figsize=(16, 6))

png

import pandas as pd

# https://github.com/FinanceData/stock_master 종목 마스터
url = 'https://github.com/FinanceData/stock_master/raw/master/stock_master.csv.gz'
df_master = pd.read_csv(url, dtype={'Symbol':str, 'Industy_code':str} )

# 시가총액 데이터 2018-10-30
df_marcap = marcap_date('2018-10-30')

# 시가총액 데이터와 종목 마스터 병합
df_merge = pd.merge(df_marcap[['Code', 'Name', 'Marcap']], df_master[['Symbol', 'Sector']], left_on='Code', right_on="Symbol")

print('row count:', len(df_merge))
df_merge.head(10)
row count: 2208
Code Name Marcap Symbol Sector
0 005930 삼성전자 2.718584e+14 005930 통신 및 방송 장비 제조업
1 000660 SK하이닉스 4.964976e+13 000660 반도체 제조업
2 068270 셀트리온 2.827678e+13 068270 기초 의약물질 및 생물학적 제제 제조업
3 207940 삼성바이오로직스 2.633367e+13 207940 기초 의약물질 및 생물학적 제제 제조업
4 051910 LG화학 2.389551e+13 051910 기초 화학물질 제조업
5 005380 현대자동차 2.296933e+13 005380 자동차용 엔진 및 자동차 제조업
6 005490 포스코 2.214546e+13 005490 1차 철강 제조업
7 017670 SK텔레콤 2.172060e+13 017670 전기 통신업
8 028260 삼성물산 2.058137e+13 028260 기타 전문 도매업
9 105560 KB금융 2.038294e+13 105560 기타 금융업
# 섹터별 시가총액
df_sector_corp_marcap = df_merge.groupby('Sector').sum().sort_values('Marcap', ascending=False)[:10]
df_sector_corp_marcap
Marcap
Sector
통신 및 방송 장비 제조업 2.888233e+14
기타 금융업 1.717551e+14
기초 의약물질 및 생물학적 제제 제조업 7.051449e+13
반도체 제조업 5.632019e+13
보험업 5.087775e+13
기초 화학물질 제조업 5.004896e+13
기타 화학제품 제조업 4.632344e+13
전기 통신업 3.793525e+13
전자부품 제조업 3.598522e+13
자동차용 엔진 및 자동차 제조업 3.498302e+13
df_sector_corp_marcap[::-1].plot(kind='barh', figsize=(16, 10))

png

# 삼성전자(005930) 시가총액 비중의 변화

df_stock['MarcapRatio'].plot(figsize=(16, 6))

png

# https://github.com/FinanceData/stock_master
import pandas as pd

url = 'https://github.com/FinanceData/stock_master/raw/master/stock_master.csv.gz'
df_master = pd.read_csv(url, dtype={'Symbol':str, 'Industy_code':str} )
df_master.head(10)
Symbol Name Market Listing Industry Sector Industy_code Industy_name
0 001040 CJ KOSPI True 지주회사 기타 금융업 64992 지주회사
1 011150 CJ씨푸드 KOSPI True 수산물(어묵,맛살)가공품 도매,원양수산업,수출입 기타 식품 제조업 10799 그 외 기타 식료품 제조업
2 012630 HDC KOSPI True 토목공사,건축공사,아파트분양사업,재개발/재건축사업 건물 건설업 4111 주거용 건물 건설업
3 082740 HSD엔진 KOSPI True 대형선박용엔진,내연발전엔진 일반 목적용 기계 제조업 29111 내연기관 제조업
4 001390 KG케미칼 KOSPI True 콘크리트혼화제, 비료, 친환경농자재, 수처리제 기초 화학물질 제조업 201 기초 화학물질 제조업
5 010060 OCI KOSPI True 타르제품,카본블랙,무수프탈산,농약원제,석탄화학제품,정밀화학제품,플라스틱창호재 제조,판매 기초 화학물질 제조업 20129 기타 기초 무기화학 물질 제조업
6 002360 SH에너지화학 KOSPI True 합성수지(PS/EPS,ABS수지) 제조 기초 화학물질 제조업 201 기초 화학물질 제조업
7 001740 SK네트웍스 KOSPI True 종합무역업(전자전기제품,섬유,에너지화학제품,철강금속제품),의류,수입산합판,MDF판매... 기타 전문 도매업 467 기타 전문 도매업
8 011810 STX KOSPI True 에너지 원료(석탄,석유),산업기자재(기계부품) 도매 상품 종합 도매업 46800 상품 종합 도매업
9 071970 STX중공업 KOSPI True 조선기자재, 기계부품, 엔진산업환경발전설비, 플랜트(EPC) 일반 목적용 기계 제조업 29119 기타 기관 및 터빈 제조업
df_master[df_master['Symbol'] == '005930']
Symbol Name Market Listing Industry Sector Industy_code Industy_name
355 005930 삼성전자 KOSPI True IMT2000 서비스용 동기식 기지국,교환국장비,데이터단말기,동영상휴대폰,핵심칩,반... 통신 및 방송 장비 제조업 32091 금속 가구 제조업
# 시가총액 데이터 2018-10-30
df_marcap = marcap_date('2018-10-30')

# 시가총액
df_merge = pd.merge(df_marcap[['Code', 'Name', 'Marcap']], df_master[['Symbol', 'Sector']], left_on='Code', right_on="Symbol")

print('row count:', len(df_merge))
df_merge.head()
row count: 2208
Code Name Marcap Symbol Sector
0 005930 삼성전자 2.718584e+14 005930 통신 및 방송 장비 제조업
1 000660 SK하이닉스 4.964976e+13 000660 반도체 제조업
2 068270 셀트리온 2.827678e+13 068270 기초 의약물질 및 생물학적 제제 제조업
3 207940 삼성바이오로직스 2.633367e+13 207940 기초 의약물질 및 생물학적 제제 제조업
4 051910 LG화학 2.389551e+13 051910 기초 화학물질 제조업
df_sector_corp_counts = df_merge['Sector'].value_counts()[:10]
df_sector_corp_counts
특수 목적용 기계 제조업     122
소프트웨어 개발 및 공급업    119
기타 금융업            113
전자부품 제조업          112
자동차 신품 부품 제조업      91
의약품 제조업            81
기타 화학제품 제조업        76
통신 및 방송 장비 제조업     73
금융 지원 서비스업         58
1차 철강 제조업          55
Name: Sector, dtype: int64
df_sector_corp_counts.plot.pie(figsize=(8, 8))

png

# 섹터별 시가총액
df_sector_corp_marcap = df_merge.groupby('Sector').sum().sort_values('Marcap', ascending=False)[:20]
df_sector_corp_marcap
Marcap
Sector
통신 및 방송 장비 제조업 2.888233e+14
기타 금융업 1.717551e+14
기초 의약물질 및 생물학적 제제 제조업 7.051449e+13
반도체 제조업 5.632019e+13
보험업 5.087775e+13
기초 화학물질 제조업 5.004896e+13
기타 화학제품 제조업 4.632344e+13
전기 통신업 3.793525e+13
전자부품 제조업 3.598522e+13
자동차용 엔진 및 자동차 제조업 3.498302e+13
1차 철강 제조업 3.477098e+13
소프트웨어 개발 및 공급업 3.463124e+13
의약품 제조업 3.458348e+13
기타 전문 도매업 3.443700e+13
자료처리, 호스팅, 포털 및 기타 인터넷 정보매개 서비스업 2.860079e+13
자동차 신품 부품 제조업 2.824217e+13
종합 소매업 2.348042e+13
선박 및 보트 건조업 2.179640e+13
컴퓨터 프로그래밍, 시스템 통합 및 관리업 1.951488e+13
기타 식품 제조업 1.943381e+13
df_sector_corp_marcap[::-1].plot(kind='barh', figsize=(16, 10))

png

# 2018-10-01
df = marcap_date('2018-10-01')

df['Marcap_trillion'] = df['Marcap'] / 1e12 # 원 단위에서 조(10^12) 단위로 변경
df['Marcap_trillion'].sum()  # 시가총액 전체 (조단위)
1843.5600760536697

시가총액 컬럼 df['Marcap_trillion']을 모두 더하면, 한국 주식시장 시가총액은 1,843조원 이다. (2018년 10월 1일 기준)

더 상세한 설명

이 문서는 개요 문서입니다. 더 상세한 설명은 여기를 참고하세요

2018 FinanceData.KR facebook.com/financedata

About

market cap datasets (1995~2018 daily)


Languages

Language:Python 100.0%