"원티드 에듀" 서류 지원했을 때 주어진 과제가 주가 데이터 분석이었다.
오늘 서류 면접 결과를 기다리면서 과제 프로젝트를 했을 때 혹시 데이터 탐색시 발견하지 못한 점이 있지 않은지 확인차 시각화하며 데이터를 음미(?)했다.
데이터를 보며 인사이트를 도출하는 과정만큼 희열을 주는 일을 찾기 힘든것같다. 원티드 에듀 서류면접은 합격했다 :)
import pandas as pd
import seaborn as sns
df = pd. read_csv( 'krx.csv' , dtype= { "Symbol" : object } )
전체 데이터 요약, 관계성, 타입, 행&열 갯수 분석
krx 컬럼 이름 해석
{'회사명':'Name',
'종목코드':'Symbol',
'업종':'Sector',
'주요제품':'Industry',
'상장일':'ListingDate',
'결산월':'SettleMonth',
'대표자명':'Representative',
'홈페이지':'HomePage',
'지역':'Region', }
Symbol
Market
Name
Sector
Industry
ListingDate
SettleMonth
Representative
HomePage
Region
0
060310
KOSDAQ
3S
특수 목적용 기계 제조업
반도체 웨이퍼 캐리어
2002-04-23
03월
박종익, 김세완 (각자 대표이사)
http://www.3sref.com
서울특별시
1
095570
KOSPI
AJ네트웍스
산업용 기계 및 장비 임대업
렌탈(파렛트, OA장비, 건설장비)
2015-08-21
12월
이현우, 박대현
http://www.ajnet.co.kr
서울특별시
2
006840
KOSPI
AK홀딩스
기타 금융업
지주사업
1999-08-11
12월
채형석, 이석주(각자 대표이사)
http://www.aekyunggroup.co.kr
서울특별시
3
054620
KOSDAQ
APS홀딩스
기타 금융업
인터넷 트래픽 솔루션
2001-12-04
12월
정기로
http://www.apsholdings.co.kr
경기도
4
265520
KOSDAQ
AP시스템
특수 목적용 기계 제조업
디스플레이 제조 장비
2017-04-07
12월
김영주
http://www.apsystems.co.kr
경기도
Symbol
Market
Name
Sector
Industry
ListingDate
SettleMonth
Representative
HomePage
Region
7206
000547
KOSPI
흥국화재2우B
NaN
NaN
NaN
NaN
NaN
NaN
NaN
7207
000545
KOSPI
흥국화재우
NaN
NaN
NaN
NaN
NaN
NaN
NaN
7208
003280
KOSPI
흥아해운
해상 운송업
외항화물운송업(케미컬탱커)
1976-06-29
12월
이환구
http://www.heung-a.com
서울특별시
7209
037440
KOSDAQ
희림
건축기술, 엔지니어링 및 관련 기술 서비스업
설계 및 감리용역
2000-02-03
12월
정영균, 이목운, 허철호 (각자대표)
http://www.heerim.com
서울특별시
7210
238490
KOSDAQ
힘스
특수 목적용 기계 제조업
OLED Mask 인장기, OLED Mask 검사기 등
2017-07-20
12월
김주환
http://www.hims.co.kr
인천광역시
Symbol
Market
Name
Sector
Industry
ListingDate
SettleMonth
Representative
HomePage
Region
ListingYear
3695
045300
KOSDAQ
성우테크론
전자부품 제조업
리드프레임가공, 반도체 장비
2001-12-18
12월
박찬홍
http://www.swmv.co.kr
경상남도
2001.0
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7211 entries, 0 to 7210
Data columns (total 10 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Symbol 7211 non-null object
1 Market 7211 non-null object
2 Name 7211 non-null object
3 Sector 2438 non-null object
4 Industry 2419 non-null object
5 ListingDate 2438 non-null object
6 SettleMonth 2438 non-null object
7 Representative 2438 non-null object
8 HomePage 2258 non-null object
9 Region 2438 non-null object
dtypes: object(10)
memory usage: 563.5+ KB
Symbol
Market
Name
Sector
Industry
ListingDate
SettleMonth
Representative
HomePage
Region
count
7211
7211
7211
2438
2419
2438
2438
2438
2258
2438
unique
7211
3
7211
158
2264
1799
9
2319
2237
22
top
308100
KOSPI
미래FH92KOSPI200풋
특수 목적용 기계 제조업
기업인수합병
1976-06-30
12월
-
http://imt@kmaringroup.com
서울특별시
freq
1
5555
1
144
37
8
2378
5
2
987
Symbol 7211
Market 3
Name 7211
Sector 158
Industry 2264
ListingDate 1799
SettleMonth 9
Representative 2319
HomePage 2237
Region 22
dtype: int64
RangeIndex(start=0, stop=7211, step=1)
Index(['Symbol', 'Market', 'Name', 'Sector', 'Industry', 'ListingDate',
'SettleMonth', 'Representative', 'HomePage', 'Region'],
dtype='object')
array([['060310', 'KOSDAQ', '3S', ..., '박종익, 김세완 (각자 대표이사)',
'http://www.3sref.com', '서울특별시'],
['095570', 'KOSPI', 'AJ네트웍스', ..., '이현우, 박대현',
'http://www.ajnet.co.kr', '서울특별시'],
['006840', 'KOSPI', 'AK홀딩스', ..., '채형석, 이석주(각자 대표이사)',
'http://www.aekyunggroup.co.kr', '서울특별시'],
...,
['003280', 'KOSPI', '흥아해운', ..., '이환구', 'http://www.heung-a.com',
'서울특별시'],
['037440', 'KOSDAQ', '희림', ..., '정영균, 이목운, 허철호 (각자대표)',
'http://www.heerim.com', '서울특별시'],
['238490', 'KOSDAQ', '힘스', ..., '김주환', 'http://www.hims.co.kr',
'인천광역시']], dtype=object)
1개의 컬럼 변수로 데이터 탐색
0 False
1 False
2 False
3 False
4 False
...
7206 False
7207 False
7208 False
7209 False
7210 False
Name: Name, Length: 7211, dtype: bool
Symbol
Market
Name
Sector
Industry
ListingDate
SettleMonth
Representative
HomePage
Region
4716
035720
KOSPI
카카오
자료처리, 호스팅, 포털 및 기타 인터넷 정보매개 서비스업
인터넷 서비스(인터넷 광고)
2017-07-10
12월
여민수, 조수용
http://www.kakaocorp.com
제주특별자치도
df. loc[ ( df[ "Region" ] == "서울특별시" ) & ( df[ "Market" ] == "KOSPI" ) , [ "Symbol" , "Name" ] ]
Symbol
Name
1
095570
AJ네트웍스
2
006840
AK홀딩스
47
027410
BGF
48
282330
BGF리테일
50
001460
BYC
...
...
...
7194
079980
휴비스
7196
005010
휴스틸
7200
069260
휴켐스
7205
000540
흥국화재
7208
003280
흥아해운
407 rows × 2 columns
파생변수 만들기
Index(['Symbol', 'Market', 'Name', 'Sector', 'Industry', 'ListingDate',
'SettleMonth', 'Representative', 'HomePage', 'Region', 'ListingYear'],
dtype='object')
df[ "ListingDate" ] = pd. to_datetime( df[ "ListingDate" ] )
df[ "ListingYear" ] = df[ "ListingDate" ] . dt. year
df[ "ListingYear" ]
0 2002.0
1 2015.0
2 1999.0
3 2001.0
4 2017.0
...
7206 NaN
7207 NaN
7208 1976.0
7209 2000.0
7210 2017.0
Name: ListingYear, Length: 7211, dtype: float64
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7211 entries, 0 to 7210
Data columns (total 11 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Symbol 7211 non-null object
1 Market 7211 non-null object
2 Name 7211 non-null object
3 Sector 2438 non-null object
4 Industry 2419 non-null object
5 ListingDate 2438 non-null datetime64[ns]
6 SettleMonth 2438 non-null object
7 Representative 2438 non-null object
8 HomePage 2258 non-null object
9 Region 2438 non-null object
10 ListingYear 2438 non-null float64
dtypes: datetime64[ns](1), float64(1), object(9)
memory usage: 619.8+ KB
df[ [ "ListingYear" , "ListingDate" ] ] . dtypes
ListingYear float64
ListingDate datetime64[ns]
dtype: object
데이터 시각화를 위한 폰트설정
플랫폼 모듈 임포트
모듈 임포트안에있는 함수 system()으로 통해 각 CPU에 맞는 시스템 이름 호출
시스템 이름에 맞는 폰트 이름 변수에 입력.
그 폰트 이름을 plt안에 있는 rc()함수 attribute "family"에 입력
def get_font_family ( ) :
"""
시스템 환경에 따른 기본 폰트명을 반환하는 함수
"""
import platform
system_name = platform. system( )
if system_name == "Darwin" :
font_family = "AppleGothic"
elif system_name == "Windows" :
font_family = "Malgun Gothic"
else :
!apt- get update - qq
!apt- get install fonts- nanum - qq > / dev/ null
import matplotlib. font_manager as fm
fontpath = '/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf'
font = fm. FontProperties( fname= fontpath, size= 9 )
fm. _rebuild( )
font_family = "NanumBarunGothic"
return font_family
a = get_font_family( )
import matplotlib. pyplot as plt
plt. rc( "font" , family = a)
plt. rc( "axes" , unicode_minus= False )
plt. style. use( "ggplot" )
폰트 설정 확인하기
pd. Series( [ 1 , 3 , 5 , 7 , 9 ] ) . plot( title= "한글폰트" )
<matplotlib.axes._subplots.AxesSubplot at 0x1a2488cc10>
한 개의 변수 빈도수 구하고 시각화 하기
Keyword
Series.value_counts()
Series.value_counts().plot()
Series.value_counts().plot.bar()
Series.value_counts().plot.barh()
sns.countplot()
array(['KOSDAQ', 'KOSPI', 'KONEX'], dtype=object)
df[ "Market" ] . value_counts( )
KOSPI 5555
KOSDAQ 1518
KONEX 138
Name: Market, dtype: int64
df[ "Market" ] . sort_values( ) . value_counts( ) . plot. barh( rot= 30 )
<matplotlib.axes._subplots.AxesSubplot at 0x1a247a3850>
sns. countplot( data = df, y = "Market" )
<matplotlib.axes._subplots.AxesSubplot at 0x1a24602950>
Sector (종류가 많을 시 상위 30개만 추려 시각화)
sector_count_top = df[ "Sector" ] . value_counts( ) . head( 30 )
sector_count_top. index
Index(['특수 목적용 기계 제조업', '소프트웨어 개발 및 공급업', '전자부품 제조업', '자동차 신품 부품 제조업',
'의약품 제조업', '기타 금융업', '기타 화학제품 제조업', '금융 지원 서비스업', '통신 및 방송 장비 제조업',
'반도체 제조업', '1차 철강 제조업', '자연과학 및 공학 연구개발업', '의료용 기기 제조업',
'일반 목적용 기계 제조업', '플라스틱제품 제조업', '기타 전문 도매업', '기초 화학물질 제조업',
'기초 의약물질 및 생물학적 제제 제조업', '컴퓨터 프로그래밍, 시스템 통합 및 관리업',
'전동기, 발전기 및 전기 변환 · 공급 · 제어 장치 제조업', '영화, 비디오물, 방송프로그램 제작 및 배급업',
'기타 식품 제조업', '의료용품 및 기타 의약 관련제품 제조업', '봉제의복 제조업', '기타 금속 가공제품 제조업',
'기계장비 및 관련 물품 도매업', '측정, 시험, 항해, 제어 및 기타 정밀기기 제조업; 광학기기 제외', '건물 건설업',
'구조용 금속제품, 탱크 및 증기발생기 제조업', '자료처리, 호스팅, 포털 및 기타 인터넷 정보매개 서비스업'],
dtype='object')
df_sector_30 = df[ df[ "Sector" ] . isin( sector_count_top. index) ]
plt. figure( figsize = ( 10 , 8 ) )
sns. countplot( data = df_sector_30, y= "Sector" , palette = "Blues_r" ,
order= sector_count_top. index) . set_title( "섹터별 빈도수" )
Text(0.5, 1.0, '섹터별 빈도수')
['Accent', 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r', 'BuPu', 'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r', 'Greens', 'Greens_r', 'Greys', 'Greys_r', 'OrRd', 'OrRd_r', 'Oranges', 'Oranges_r', 'PRGn', 'PRGn_r', 'Paired', 'Paired_r', 'Pastel1', 'Pastel1_r', 'Pastel2', 'Pastel2_r', 'PiYG', 'PiYG_r', 'PuBu', 'PuBuGn', 'PuBuGn_r', 'PuBu_r', 'PuOr', 'PuOr_r', 'PuRd', 'PuRd_r', 'Purples', 'Purples_r', 'RdBu', 'RdBu_r', 'RdGy', 'RdGy_r', 'RdPu', 'RdPu_r', 'RdYlBu', 'RdYlBu_r', 'RdYlGn', 'RdYlGn_r', 'Reds', 'Reds_r', 'Set1', 'Set1_r', 'Set2', 'Set2_r', 'Set3', 'Set3_r', 'Spectral', 'Spectral_r', 'Wistia', 'Wistia_r', 'YlGn', 'YlGnBu', 'YlGnBu_r', 'YlGn_r', 'YlOrBr', 'YlOrBr_r', 'YlOrRd', 'YlOrRd_r', 'afmhot', 'afmhot_r', 'autumn', 'autumn_r', 'binary', 'binary_r', 'bone', 'bone_r', 'brg', 'brg_r', 'bwr', 'bwr_r', 'cividis', 'cividis_r', 'cool', 'cool_r', 'coolwarm', 'coolwarm_r', 'copper', 'copper_r', 'cubehelix', 'cubehelix_r', 'flag', 'flag_r', 'gist_earth', 'gist_earth_r', 'gist_gray', 'gist_gray_r', 'gist_heat', 'gist_heat_r', 'gist_ncar', 'gist_ncar_r', 'gist_rainbow', 'gist_rainbow_r', 'gist_stern', 'gist_stern_r', 'gist_yarg', 'gist_yarg_r', 'gnuplot', 'gnuplot2', 'gnuplot2_r', 'gnuplot_r', 'gray', 'gray_r', 'hot', 'hot_r', 'hsv', 'hsv_r', 'icefire', 'icefire_r', 'inferno', 'inferno_r', 'jet', 'jet_r', 'magma', 'magma_r', 'mako', 'mako_r', 'nipy_spectral', 'nipy_spectral_r', 'ocean', 'ocean_r', 'pink', 'pink_r', 'plasma', 'plasma_r', 'prism', 'prism_r', 'rainbow', 'rainbow_r', 'rocket', 'rocket_r', 'seismic', 'seismic_r', 'spring', 'spring_r', 'summer', 'summer_r', 'tab10', 'tab10_r', 'tab20', 'tab20_r', 'tab20b', 'tab20b_r', 'tab20c', 'tab20c_r', 'terrain', 'terrain_r', 'twilight', 'twilight_r', 'twilight_shifted', 'twilight_shifted_r', 'viridis', 'viridis_r', 'vlag', 'vlag_r', 'winter', 'winter_r']
sector_value_counts = df[ "Sector" ] . value_counts( )
sector_value_counts. to_frame( ) . plot. kde( )
<matplotlib.axes._subplots.AxesSubplot at 0x1a2e2cb350>
Industry
industry_top_30 = df[ "Industry" ] . value_counts( ) . head( 30 )
industry_top_30. index
Index(['기업인수합병', '지주회사', '지주사업', '기업 인수 및 합병', '기업인수 및 합병', '화장품', '모바일게임',
'벤처캐피탈', '금융지원 서비스', '자동차부품', '금융지원서비스', '의약품', '도급공사', '합병', '건강기능식품',
'-', '셋톱박스', '증권업', '금융지주회사', '의료정보시스템', '배합사료', '사료',
'부동산투자, 취득, 매매, 임대', '이미지센서 패키징', '항체치료제', '플라스틱 필름', '소주', '비금융지주회사',
'도시가스', '금융 지원 서비스'],
dtype='object')
기업인수합병 37
지주회사 19
지주사업 9
기업 인수 및 합병 7
기업인수 및 합병 7
화장품 7
모바일게임 7
벤처캐피탈 4
금융지원 서비스 4
자동차부품 3
금융지원서비스 3
의약품 3
도급공사 3
합병 3
건강기능식품 3
- 3
셋톱박스 3
증권업 3
금융지주회사 3
의료정보시스템 2
배합사료 2
사료 2
부동산투자, 취득, 매매, 임대 2
이미지센서 패키징 2
항체치료제 2
플라스틱 필름 2
소주 2
비금융지주회사 2
도시가스 2
금융 지원 서비스 2
Name: Industry, dtype: int64
industry_top_30. sort_values( ) . plot. barh( figsize= ( 10 , 8 ) , title = "Industry Count" )
<matplotlib.axes._subplots.AxesSubplot at 0x1a245101d0>
df_industry_top_30 = df[ df[ "Industry" ] . isin( industry_top_30. index) ]
plt. figure( figsize = ( 10 , 8 ) )
sns. countplot( data = df_industry_top_30, y = "Industry" , order = industry_top_30. index)
<matplotlib.axes._subplots.AxesSubplot at 0x1a2cd4d710>
Region
df[ "Region" ] . value_counts( ) . index
Index(['서울특별시', '경기도', '충청남도', '경상남도', '인천광역시', '충청북도', '부산광역시', '경상북도',
'대구광역시', '대전광역시', '전라북도', '강원도', '울산광역시', '광주광역시', '전라남도', '제주특별자치도',
'세종특별자치시', '홍콩', '미국', '케이맨 제도', '일본', '싱가포르'],
dtype='object')
df[ "Region" ] . value_counts( ) . sort_values( ) . plot. barh( figsize= ( 10 , 8 ) , title = "Region" )
<matplotlib.axes._subplots.AxesSubplot at 0x1a25f917d0>
Region_index = df[ "Region" ] . value_counts( ) . index
Region_region = df[ df[ "Region" ] . isin( Region_index) ]
Symbol
Market
Name
Sector
Industry
ListingDate
SettleMonth
Representative
HomePage
Region
ListingYear
0
060310
KOSDAQ
3S
특수 목적용 기계 제조업
반도체 웨이퍼 캐리어
2002-04-23
03월
박종익, 김세완 (각자 대표이사)
http://www.3sref.com
서울특별시
2002.0
1
095570
KOSPI
AJ네트웍스
산업용 기계 및 장비 임대업
렌탈(파렛트, OA장비, 건설장비)
2015-08-21
12월
이현우, 박대현
http://www.ajnet.co.kr
서울특별시
2015.0
2
006840
KOSPI
AK홀딩스
기타 금융업
지주사업
1999-08-11
12월
채형석, 이석주(각자 대표이사)
http://www.aekyunggroup.co.kr
서울특별시
1999.0
3
054620
KOSDAQ
APS홀딩스
기타 금융업
인터넷 트래픽 솔루션
2001-12-04
12월
정기로
http://www.apsholdings.co.kr
경기도
2001.0
4
265520
KOSDAQ
AP시스템
특수 목적용 기계 제조업
디스플레이 제조 장비
2017-04-07
12월
김영주
http://www.apsystems.co.kr
경기도
2017.0
...
...
...
...
...
...
...
...
...
...
...
...
7204
189980
KOSDAQ
흥국에프엔비
비알코올음료 및 얼음 제조업
과일음료(에이드베이스, 스무디, 착즙쥬스 등)
2015-08-07
12월
박철범, 오길영
http://www.hyungkuk.com
서울특별시
2015.0
7205
000540
KOSPI
흥국화재
보험업
손해보험
1974-12-05
12월
권중원
http://www.insurance.co.kr
서울특별시
1974.0
7208
003280
KOSPI
흥아해운
해상 운송업
외항화물운송업(케미컬탱커)
1976-06-29
12월
이환구
http://www.heung-a.com
서울특별시
1976.0
7209
037440
KOSDAQ
희림
건축기술, 엔지니어링 및 관련 기술 서비스업
설계 및 감리용역
2000-02-03
12월
정영균, 이목운, 허철호 (각자대표)
http://www.heerim.com
서울특별시
2000.0
7210
238490
KOSDAQ
힘스
특수 목적용 기계 제조업
OLED Mask 인장기, OLED Mask 검사기 등
2017-07-20
12월
김주환
http://www.hims.co.kr
인천광역시
2017.0
2438 rows × 11 columns
plt. figure( figsize= ( 10 , 8 ) )
sns. countplot( data = df, y = "Region" , palette= "Greens_r" )
<matplotlib.axes._subplots.AxesSubplot at 0x1a263faa90>
두 개의 변수 빈도수 구하고 시각화 하기
crosstab 으로 빈도수 구하기
seaborn의 countplot 으로 빈도수 시각화
pandas의 plot 기능으로 시각화
lineplot : 연속된 데이터(숫자, 기간)
barplot : 비연속 데이터(범주형)
hist : 연속된 수치 데이터의 범주화
pd.crosstab이용하여 지역별 상장 시장 종목 빈도수 구하기
pd.crosstab 을 통한 2개의 변수에 대한 빈도수 구하기
pd. crosstab( df[ "Market" ] , df[ "Region" ] )
Region
강원도
경기도
경상남도
경상북도
광주광역시
대구광역시
대전광역시
미국
부산광역시
서울특별시
...
울산광역시
인천광역시
일본
전라남도
전라북도
제주특별자치도
충청남도
충청북도
케이맨 제도
홍콩
Market
KONEX
7
36
0
6
5
1
7
0
1
53
...
0
4
0
3
1
1
3
9
0
0
KOSDAQ
16
499
49
39
9
33
38
6
38
527
...
10
57
3
13
15
2
66
58
4
9
KOSPI
4
147
42
19
9
21
8
0
36
407
...
16
25
0
7
11
7
26
14
1
0
3 rows × 22 columns
plt. figure( figsize= ( 14 , 10 ) )
sns. countplot( data = df, y = "Region" , hue = "Market" ) . set_title( "지역별, 마켓별 빈도수" )
Text(0.5, 1.0, '지역별, 마켓별 빈도수')
연도별 상장 종목 빈도수 분석
Market_Year = pd. crosstab( df[ "Market" ] , df[ "ListingYear" ] )
Market_Year
ListingYear
1956.0
1962.0
1964.0
1966.0
1968.0
1969.0
1970.0
1971.0
1972.0
1973.0
...
2012.0
2013.0
2014.0
2015.0
2016.0
2017.0
2018.0
2019.0
2020.0
2021.0
Market
KONEX
0
0
0
0
0
0
0
0
0
0
...
0
12
13
27
26
19
14
15
12
0
KOSDAQ
0
0
0
0
0
0
0
0
0
0
...
20
35
59
90
65
68
89
97
86
33
KOSPI
5
1
1
1
6
5
4
1
3
22
...
14
11
9
18
18
20
19
15
14
5
3 rows × 57 columns
Pandas를 통한 시각화 6.2 연속
g = Market_Year. T. plot( figsize = ( 10 , 4 ) , title = "연도별 시장별 빈도수" )
g = Market_Year. T. plot( figsize = ( 10 , 4 ) , title = "연도별 시장별 빈도수" , subplots = True )
Market_Year. T. plot. bar( figsize = ( 10 , 8 ) , title = "연도별 시장별 빈도수" )
<matplotlib.axes._subplots.AxesSubplot at 0x1a2de802d0>
seaborn을 통한 빈도수 시각화
plt. figure( figsize = ( 10 , 14 ) )
sns. countplot( data = df, y = "ListingYear" , hue = "Market" ) . set_title( "연도별 시장별 빈도수" )
Text(0.5, 1.0, '연도별 시장별 빈도수')
groupby 와 pivot_table로 빈도수 구하기
market_year_groupby = df. groupby( [ "Market" , "ListingYear" ] ) [ "Symbol" ] . count( ) . unstack( ) . fillna( 0 ) . astype( int )
market_year_groupby. columns = market_year_groupby. columns. astype( int )
market_year_groupby
1956
1962
1964
1966
1968
1969
1970
1971
1972
1973
...
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
Market
KONEX
0
0
0
0
0
0
0
0
0
0
...
0
12
13
27
26
19
14
15
12
0
KOSDAQ
0
0
0
0
0
0
0
0
0
0
...
20
35
59
90
65
68
89
97
86
33
KOSPI
5
1
1
1
6
5
4
1
3
22
...
14
11
9
18
18
20
19
15
14
5
3 rows × 57 columns
market_year_pivot = pd. pivot_table( data = df, index = [ "Market" ] ,
columns = "ListingYear" , values = "Symbol" ,
aggfunc = "count" , fill_value = 0 ) . astype( int )
market_year_pivot. columns = market_year_pivot. columns. astype( int )
market_year_pivot
1956
1962
1964
1966
1968
1969
1970
1971
1972
1973
...
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
Market
KONEX
0
0
0
0
0
0
0
0
0
0
...
0
12
13
27
26
19
14
15
12
0
KOSDAQ
0
0
0
0
0
0
0
0
0
0
...
20
35
59
90
65
68
89
97
86
33
KOSPI
5
1
1
1
6
5
4
1
3
22
...
14
11
9
18
18
20
19
15
14
5
3 rows × 57 columns
df_market_year_sns = df. groupby( [ "Market" , "ListingYear" ] ) [ "Symbol" ] . count( )
df_market_year_sns = df_market_year_sns. reset_index( )
df_market_year_sns = df_market_year_sns. rename( columns = { "Symbol" : "Count" } )
df_market_year_sns. head( )
Market
ListingYear
Count
0
KONEX
2013.0
12
1
KONEX
2014.0
13
2
KONEX
2015.0
27
3
KONEX
2016.0
26
4
KONEX
2017.0
19
plt. figure( figsize = ( 10 , 4 ) )
sns. scatterplot( data = df_market_year_sns, x = "ListingYear" , y = "Count" , hue = "Market" )
<matplotlib.axes._subplots.AxesSubplot at 0x1a29300d90>
plt. figure( figsize = ( 10 , 4 ) )
sns. lineplot( data = df_market_year_sns, x = "ListingYear" , y = "Count" , hue = "Market" , ci = None )
<matplotlib.axes._subplots.AxesSubplot at 0x1a29ca6bd0>
sns. relplot( data = df_market_year_sns, x = "ListingYear" , y = "Count" , hue = "Market" , col = "Market" )
<seaborn.axisgrid.FacetGrid at 0x1a29a824d0>
sns. relplot( data = df_market_year_sns, x = "ListingYear" ,
y = "Count" , hue = "Market" , row = "Market" , kind = "line" ,
height= 2 , aspect= 3 )
<seaborn.axisgrid.FacetGrid at 0x1a2b069ed0>
데이터 색인후 시각화
df[ df[ "Region" ] == "서울특별시" ]
Symbol
Market
Name
Sector
Industry
ListingDate
SettleMonth
Representative
HomePage
Region
ListingYear
0
060310
KOSDAQ
3S
특수 목적용 기계 제조업
반도체 웨이퍼 캐리어
2002-04-23
03월
박종익, 김세완 (각자 대표이사)
http://www.3sref.com
서울특별시
2002.0
1
095570
KOSPI
AJ네트웍스
산업용 기계 및 장비 임대업
렌탈(파렛트, OA장비, 건설장비)
2015-08-21
12월
이현우, 박대현
http://www.ajnet.co.kr
서울특별시
2015.0
2
006840
KOSPI
AK홀딩스
기타 금융업
지주사업
1999-08-11
12월
채형석, 이석주(각자 대표이사)
http://www.aekyunggroup.co.kr
서울특별시
1999.0
5
211270
KOSDAQ
AP위성
통신 및 방송 장비 제조업
위성통신 단말기
2016-03-04
12월
류장수
http://www.apsi.co.kr
서울특별시
2016.0
47
027410
KOSPI
BGF
기타 금융업
지주회사
2014-05-19
12월
홍정국
http://www.bgf.co.kr
서울특별시
2014.0
...
...
...
...
...
...
...
...
...
...
...
...
7200
069260
KOSPI
휴켐스
기타 화학제품 제조업
화합물,화학제품 제조
2002-10-07
12월
신진용
http://www.huchems.com
서울특별시
2002.0
7204
189980
KOSDAQ
흥국에프엔비
비알코올음료 및 얼음 제조업
과일음료(에이드베이스, 스무디, 착즙쥬스 등)
2015-08-07
12월
박철범, 오길영
http://www.hyungkuk.com
서울특별시
2015.0
7205
000540
KOSPI
흥국화재
보험업
손해보험
1974-12-05
12월
권중원
http://www.insurance.co.kr
서울특별시
1974.0
7208
003280
KOSPI
흥아해운
해상 운송업
외항화물운송업(케미컬탱커)
1976-06-29
12월
이환구
http://www.heung-a.com
서울특별시
1976.0
7209
037440
KOSDAQ
희림
건축기술, 엔지니어링 및 관련 기술 서비스업
설계 및 감리용역
2000-02-03
12월
정영균, 이목운, 허철호 (각자대표)
http://www.heerim.com
서울특별시
2000.0
987 rows × 11 columns
df. loc[ df[ "ListingYear" ] < 1970 , : ] . head( )
Symbol
Market
Name
Sector
Industry
ListingDate
SettleMonth
Representative
HomePage
Region
ListingYear
56
000120
KOSPI
CJ대한통운
도로 화물 운송업
Contract Logistics, 포워딩, 항만하역, 해운, 택배국제특송, SCM...
1956-07-02
12월
강신호
http://www.cjlogistics.com
서울특별시
1956.0
77
001530
KOSPI
DI동일
상품 중개업
면사,화섬사,면포,혼방포,스포츠웨어용 신합섬 제조,도매,수출
1964-01-04
12월
서태원, 손재선
http://www.dong-il.com
서울특별시
1964.0
1909
004250
KOSPI
NPC
플라스틱제품 제조업
산업용기프라스틱제품(플라스틱 파렛트,시트 파렛트) 제조,판매
1969-09-08
12월
최병민
http://www.npc.co.kr
경기도
1969.0
2202
000050
KOSPI
경방
종합 소매업
섬유류(면사,면혼방사,면직물,면혼방직물,화섬사,화섬직물) 제조,도매,수출입
1956-03-03
12월
김준, 김담
http://www.kyungbang.co.kr
서울특별시
1956.0
2476
001440
KOSPI
대한전선
절연선 및 케이블 제조업
전력선,통신케이블,적산계기,스텐레스압연제품,광케이블,초고압선,알루미늄 제조,도매/전기공사
1968-12-27
12월
나형균
http://www.taihan.com
경기도
1968.0
seoul = df[ "Region" ] == "서울특별시"
kospi = df[ "Market" ] == "KOSPI"
year = df[ "ListingYear" ] == 2020
df. loc[ seoul& kospi& year, : ]
Symbol
Market
Name
Sector
Industry
ListingDate
SettleMonth
Representative
HomePage
Region
ListingYear
93
365550
KOSPI
ESR켄달스퀘어리츠
부동산 임대 및 공급업
부동산투자
2020-12-23
05월
박래익
http://www.esrks-reit.com
서울특별시
2020.0
3410
357250
KOSPI
미래에셋맵스리츠
부동산 임대 및 공급업
부동산 임대업
2020-08-05
11월
김호식
http://www.maps1reit.miraeasset.com
서울특별시
2020.0
4146
244920
KOSPI
에이플러스에셋
보험 및 연금관련 서비스업
보험대리 및 중개업
2020-11-20
12월
곽근호, 서성식, 조규남
NaN
서울특별시
2020.0
4496
350520
KOSPI
이지스레지던스리츠
부동산 임대 및 공급업
부동산투자, 취득, 매매, 임대
2020-08-05
06월
박영희
http://igisresidencereit.com/
서울특별시
2020.0
4501
334890
KOSPI
이지스밸류리츠
부동산 임대 및 공급업
부동산투자, 취득, 매매, 임대
2020-07-16
08월
도병운
http://www.igisvaluereit.com
서울특별시
2020.0
4609
348950
KOSPI
제이알글로벌리츠
부동산 임대 및 공급업
벨기에 파이낸스 타워
2020-08-07
06월
오남수
http://jrglobalreit.com
서울특별시
2020.0
4741
344820
KOSPI
케이씨씨글라스
유리 및 유리제품 제조업
판유리 등
2020-01-21
12월
김내환
http://www.kccglass.co.kr
서울특별시
2020.0
4773
357120
KOSPI
코람코에너지리츠
부동산 임대 및 공급업
부동산 투자 및 관리
2020-08-31
11월
이성균
http://www.koramcoenergyplus.co.kr
서울특별시
2020.0
4924
363280
KOSPI
티와이홀딩스
기타 금융업
지주사업
2020-09-22
12월
유종연
http://www.ty-holdings.co.kr
서울특별시
2020.0
5079
352820
KOSPI
하이브
오디오물 출판 및 원판 녹음업
음악 기획/제작, 퍼블리싱, 아티스트 매니지먼트
2020-10-15
12월
방시혁
http://www.bighitcorp.com
서울특별시
2020.0
지역별 섹터
df_sr = pd. crosstab( df[ "Sector" ] , df[ "Region" ] )
df_sr
Region
강원도
경기도
경상남도
경상북도
광주광역시
대구광역시
대전광역시
미국
부산광역시
서울특별시
...
울산광역시
인천광역시
일본
전라남도
전라북도
제주특별자치도
충청남도
충청북도
케이맨 제도
홍콩
Sector
1차 비철금속 제조업
0
7
1
1
0
3
1
0
1
3
...
0
0
0
0
0
0
1
0
0
0
1차 철강 제조업
0
4
12
7
1
0
1
0
11
11
...
0
4
0
1
1
0
4
0
0
0
가구 제조업
0
4
0
0
0
0
0
0
0
3
...
0
1
0
0
0
0
0
0
0
0
가전제품 및 정보통신장비 소매업
0
0
0
0
0
1
0
0
0
1
...
0
0
0
0
0
0
0
0
0
0
가정용 기기 제조업
0
6
1
0
1
0
0
0
0
1
...
0
0
0
0
0
0
0
0
0
0
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
해상 운송업
0
0
0
0
0
0
0
0
0
5
...
0
0
0
0
0
0
0
0
0
0
해체, 선별 및 원료 재생업
0
1
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
화학섬유 제조업
0
1
0
1
0
1
0
0
0
6
...
0
0
0
0
1
0
0
0
0
0
환경 정화 및 복원업
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
1
0
0
0
회사 본부 및 경영 컨설팅 서비스업
0
1
0
0
0
1
0
0
2
7
...
0
0
0
0
0
0
0
0
0
0
158 rows × 22 columns
컬럼과 인덱스 값으로 색인하기
df_sr. loc[ : , [ "강원도" , "대구광역시" ] ]
Region
강원도
대구광역시
Sector
1차 비철금속 제조업
0
3
1차 철강 제조업
0
0
가구 제조업
0
0
가전제품 및 정보통신장비 소매업
0
1
가정용 기기 제조업
0
0
...
...
...
해상 운송업
0
0
해체, 선별 및 원료 재생업
0
0
화학섬유 제조업
0
1
환경 정화 및 복원업
0
0
회사 본부 및 경영 컨설팅 서비스업
0
1
158 rows × 2 columns
특정 행만 가져오기
df_sr. loc[ "소프트웨어 개발 및 공급업" , : ]
Region
강원도 0
경기도 37
경상남도 0
경상북도 0
광주광역시 0
대구광역시 0
대전광역시 1
미국 0
부산광역시 1
서울특별시 97
세종특별자치시 0
싱가포르 0
울산광역시 0
인천광역시 0
일본 2
전라남도 0
전라북도 0
제주특별자치도 0
충청남도 0
충청북도 2
케이맨 제도 0
홍콩 1
Name: 소프트웨어 개발 및 공급업, dtype: int64
df_sr. loc[ [ "소프트웨어 개발 및 공급업" , "금융 지원 서비스업" , "의약품 제조업" ] , : ]
Region
강원도
경기도
경상남도
경상북도
광주광역시
대구광역시
대전광역시
미국
부산광역시
서울특별시
...
울산광역시
인천광역시
일본
전라남도
전라북도
제주특별자치도
충청남도
충청북도
케이맨 제도
홍콩
Sector
소프트웨어 개발 및 공급업
0
37
0
0
0
0
1
0
1
97
...
0
0
2
0
0
0
0
2
0
1
금융 지원 서비스업
0
0
0
0
0
0
0
0
0
75
...
0
0
0
0
0
0
0
0
0
0
의약품 제조업
5
34
1
0
0
0
2
0
1
39
...
0
2
0
0
0
0
2
6
0
0
3 rows × 22 columns
df_sr. loc[ [ "소프트웨어 개발 및 공급업" , "금융 지원 서비스업" , "의약품 제조업" ] , [ "서울특별시" ] ]
Region
서울특별시
Sector
소프트웨어 개발 및 공급업
97
금융 지원 서비스업
75
의약품 제조업
39
g = df_sr. loc[ "소프트웨어 개발 및 공급업" , : ] . sort_values( ) . plot. barh( figsize= ( 10 , 5 ) , title = "지역별 소프트웨어 개발 공급업체 갯수" )
g = df_sr. loc[ "의약품 제조업" , : ] . sort_values( ) . plot. barh( figsize= ( 10 , 5 ) , title = "지역별 의약품 제조업체 갯수" )