본문 바로가기
문송충의 코딩하기/파이썬 데이터 분석

네이버에서 국내 ETF 종목 정보 가져와서 분석 with Python

by 동장군님 2021. 3. 20.
728x90
반응형

네이버 증권 페이지에서는 국내 ETF 종목 정보를 제공해주고 있다. 그래서 오늘은 파이썬으로 ETF 종목을 긁어와서 간략히 분석해보도록 하겠다. 아래와 같이 파이썬 몇 줄로 모든 ETF 종목을 가지고 올 수 있다.

 

import requests
import json
from pandas.io.json import json_normalize

url = 'https://finance.naver.com/api/sise/etfItemList.nhn'
json_data = json.loads(requests.get(url).text)
df = json_normalize(json_data['result']['etfItemList'])

df를 출력하면 아래와 같이 증시에 있는 총 474개의 ETF 종목을 확인할 수 있다. 종목코드, 종목명, nav, 시가총액 등 데이터가 같이 나오는 점을 볼 수 있다. 

 

 

아래 코드로 국내 증시 시장에 ETF 시가총액은 56조 4천 억으로 확인되었다. 

df['marketSum'].sum()

 

 

운영사별 ETF 개수를 살펴보면 미래에셋의 Tiger, 삼성자산운용사의 KODEX, KB자산운용의 KBSTAR가 가장 많은 ETF가 있는 점을 확인할 수 있다.

 

import pandas as pd 
import plotly.express as px

df['corp']=df['itemname'].apply(lambda x:x.split(' ')[0])

total=pd.DataFrame(df.groupby(['corp']).count()['itemname']).reset_index()
total.columns=['운영사','etf 개수']
total=total.sort_values(by='etf 개수',ascending=False)
total['운영사']=total['운영사'].str.replace('파워','POWER').replace('마이티','MIGHTY').replace('마이다스','MIDAS').replace('흥국','HK')

fig = px.bar(total, x='운영사', y='etf 개수')
fig.show()

 

 

개수와는 달리 시가총액 합에서는 삼성자산운용의 KODEX의 시가총액이 전체 ETF 시장에서 절반 이상을 차지하는 것을 확인할 수 있다.

 

msum=pd.DataFrame(df.groupby(['corp']).sum()['marketSum']).reset_index()
msum.columns=['운영사','시가총액']
msum=msum.sort_values(by='시가총액',ascending=False)
tt=msum['시가총액'].sum()
msum['비중']=msum['시가총액'].apply(lambda x: x/tt)
msum['운영사']=msum['운영사'].str.replace('파워','POWER').replace('마이티','MIGHTY').replace('마이다스','MIDAS').replace('흥국','HK')

fig = px.pie(msum, values='비중', names='운영사', title='운영사별 ETF 시가총액 합')
fig.show()

 

 

 

 

 

728x90
반응형

댓글