- FinanceDataReader
개요
한국 주식 가격, 미국 주식 가격, 지수, 환율, 암호화폐 가격, 종목 리스팅 등 금융 데이터 수집 라이브러리 입니다.
pandas-datareader 는 시계열 데이터 수집 라이브러리이지만 거래소별(KRX, NASDAQ, NYSE 등) 전체 종목 코드를
가져오는 기능이 없고 야후 파이낸스, 구글 파이낸스가 지원 않되고 있다.
FinanceDataReader는 pandas-datareader를 보완하기 위한 목적으로 만들어 졌습니다.
종목코드
거래소별 전체 종목코드:KRX(KOSPI, KODAQ, KONEX), NASDAQ, NYSE, AMEX, S&P 500
가격데이터
해외주식 가격 데이터: AAPL(애플), AMZN(아마존), GOOG(구글) 등
국내주식 가격 데이터: 005930(삼성전자), 091990(셀트리온헬스케어) 등
각종 지수: KS11(코스피지수), KQ11(코스닥지수), DJI(다우지수), IXIC(나스닥 지수), US500(S&P 5000)
환율 데이터: USD/KRX (원달러 환율), USD/EUR(달러당 유로화 환율), CNY/KRW: 위엔화 원화 환율
암호화폐 가격: BTC/USD (비트코인 달러 가격, Bitfinex), BTC/KRW (비트코인 원화 가격, 빗썸)
설치
pip install -U finance-datareader
pip install beautifulsoup4
pip install matplotlib # 챠트 모듈
import FinanceDataReader as fdr import matplotlib.pyplot as plt # FinanceDataReader Development Version print(fdr.__version__) print("\n\n") # 종목 데이터 전체 얻기 # 한국 # Symbol Stock Exchange # KRX KRX 전체 종목 # KOSPI KOSPI 전체 종목 # KOSDAQ KOSDAQ 전체 종목 # KONEX KONEX 전체 종목 # 미국 # Symbol Stock Exchange # NASDAQ 나스닥 전체 종목 # NYSE 뉴욕증권거래소 전체 종목 # AMEX 아맥스 전체 종목 # SP500(or S&P500) S&P500 전체 종목 # 한국증권거래소 상장 전체 종목 df_krx = fdr.StockListing('KRX') print(df_krx.head(len(df_krx))) # S&P 500 전체 종목 df_spx = fdr.StockListing('SP500') print(df_spx.head(100)) print(len(df_spx)) # 가격 데이터 - 국내주식 # 단축 코드 (6자리)를 사용 # 코스피 종목 : 068270(셀트리온), 005380(현대차) 등 # 코드닥 종목 : 247540(에코프로비엠), 048260(오스템임플란트) 등 # 셀트리온, 2020년 fdr.DataReader('068270', "2020') df_068270 = fdr.DataReader("068270", "2020-01-01", "2020-12-31") print(df_068270.head(30)) # 현대차, 2020년 ~ 현재 df_005380 = fdr.DataReader('005380', '2020-01', '2021-08') # df_005380['Close'].plot() # plt.show() # 애플(AAPL), 2017년 df_aapl = fdr.DataReader('AAPL', '2017') print(df_aapl.tail(30)) # 아마존(AMZN), 2020년 df_amzn = fdr.DataReader('AMZN', '2020') # df_amzn.Close.plot() # plt.show() # 한국 지수 # 기호 설명 # KS11 KOSPI 지수 # KQ11 KOSDAQ 지수 # KS50 KOSPI 50 지수 # KS100 KOSPI 100 지수 # KRX100 KRX 100 지수 (한국증권거래소 우량 100 통합주가지수) # KS200 KOSPI 200 지수 # 미국 지수 # 기호 설명 # DJI 다우존스 지수 # IXIC 나스닥 지수 # US500 S&P 500 지수 # VIX S&P 500 VIX (주가 변동성 지수) # 국가별 주요 지수 # 기호 설명 # JP225 닛케이 225 선물 # STOXX50E Euro Stoxx 50 # CSI300 CSI300 중국 지수 # HSI 항셍(홍콩) # FTSE 영국 FTSE # DAX 독일 DAX 30 # CAC 프랑스 CAC 40 # KS11 (KOSPI 지수), 2020년 df_ks11 = fdr.DataReader('KS11', '2020') # df_ks11.Close.plot() # plt.show() # 다우지수, 2021년 df_dji = fdr.DataReader('DJI', '2021') # df_dji['Close'].plot() # plt.show() # 환율 # 기호 설명 # USD/KRW 달러당 원화 환율 # USD/EUR 달러당 유로화 환율 # USD/JPY 달러당 엔화 환율 # CNY/KRW 위엔화당 원화 환율 # EUR/USD 유로화당 달러 환율 # JPY/KRW 엔화당 원화 환율 # AUD/USD 오스트레일리아화당 달러 환율 # EUR/JPY 유로화당 엔화 환율 # USD/RUB 달러당 루블화 환율 # 원달러 환율, 2021년 df_usdkrw = fdr.DataReader('USD/KRW', '2021') print(df_usdkrw.Close) # 암호화폐 가격 (KRW) 암호화폐 원화 가격(빗썸-bitthum) # 기호 설명 # BTC/KRW 비트코인 원화 가격 # ETH/KRW 이더리움 원화 가격 # XRP/KRW 리플 원화 가격 # BCH/KRW 비트코인 캐시 원화 가격 # EOS/KRW 이오스 원화 가격 # LTC/KRW 라이트 코인 원화 가격 # XLM/KRW 스텔라 원화 가격 # 암호화폐 가격 (USD) 암호화폐 달러 가격(Bitfinex) # 기호 설명 # BTC/USD 비트코인 달러 가격 # ETH/USD 이더리움 달러 가격 # XRP/USD 리플 달러 가격 # BCH/USD 비트코인 캐시 달러 가격 # EOS/USD 이오스 달러 가격 # LTC/USD 라이트 코인 달러 가격 # XLM/USD 스텔라 달러 가격 # 암호화폐 선물 # 기호 설명 # BT 비트코인 CME 선물 # MBT 마이크로 비트코인 CME 선물 # 비트코인 원화 가격 (빗썸), 2021년 df_btckrw = fdr.DataReader('BTC/KRW', '2021') print(df_btckrw.Close) # CME 비트코인 선물 가격 df_btc = fdr.DataReader('BT', '2021') print(df_btc.Close) print("\n\n") # 셀트리온 주식 데이터 다루기 pandas(python data analysis library) 형태 # 최종 읽어들인 데이터 df_068270이 pandas DataFrame이 된다. df_068270 = fdr.DataReader('068270', '2010-01', '2021-08') print(df_068270.head()) # 가장 과거 부터 데이터 가져오기 print(df_068270.tail()) # 가장 최근 부터 데이터 가져오기 print(df_068270.shape) # DataFrame 의 Dimension 즉 rows, columns 갯수, 행열 갯수 print(len(df_068270.index)) # rows count, 행 갯수 print(len(df_068270.columns)) # columns count, 열 갯수 print(list(df_068270.index)) # row index list print(list(df_068270.columns)) # column name list # iloc 은 row 와 column 을 index 기준으로 조회 # ':' 은 index, column 목록에서 to 의 역할 [0:3, 1:4] 는 index 0부터 3까지, column 1부터 4까지 # ',' 은 index 와 column 을 구분하는 부분이다. print(df_068270.iloc[0 : 3]) # select 3 row 첫번째 행부터 3개 print(df_068270.iloc[0:3, 1:4]) print(df_068270.iloc[3 :]) # 4번째 행부터 나머지 전체 행 print(df_068270.iloc[0]) # 컬럼별 전체 값 sum # loc 은 row 와 column 을 label 기준으로 조회 print(df_068270.loc['2010-01-04':, ['Open', 'Close']]) # '2010-01-04' 부터 현재까지 'Open', 'Close' 컴럼 값 print(df_068270.loc[['2010-01-07', '2021-07-26'], ['Open', 'Close']]) # 4번째 행부터 나머지 전체 행 print(df_068270.loc[:, ["Open", "High", "Low", "Close", "Volume", "Change"]]) # 시가, 고가, 저가, 종가, 거래량, 전일 대비 종가 print(df_068270['Close']) # 종가 전체 인덱스 포함 row print(df_068270.Close) # 위와 같은 의미 print(list(df_068270.Close)) # list 변환 print(dict(df_068270.Close)) # dictionary 변환 # df_068270 = df_068270.rename(columns = {"Open" : "시가"}) |
'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글
63. PyQtGraph 기본 그래프 그리기 (0) | 2021.08.12 |
---|---|
62. 주가 챠트 (0) | 2021.08.12 |
60. 멀티스레딩 (0) | 2021.08.10 |
59. 이벤트 루프 (0) | 2021.08.10 |
58. 타이머와 스레드 (0) | 2021.08.09 |