스파르타 국비지원 교육/스파르타_주식 데이터를 활용한 파이썬 데이터분석

[내일배움카드 코딩] 3주차_주식 데이터 분석 파이썬

js-delog77 2023. 6. 4. 22:05

한동안 다른 공부를 한다고 작성하지 못해 오랜만에 작성하네요.

3주차 내용을 작성 시작해볼께요 ^^

OpenAPI?

- 데이터를 가져가서 사용해도 된다고 오픈(얼마든지 가져가)된 것을 말해요.

 

하나하나 찾아서 데이터를 입력하는게 아니라 이미 차근차근 모아둔 데이터 정보를 누구나

가져가서 사용할 수 있게 해놓은 것을 말해요.

 

Dart OpenAPI

Dart에서 제공해주는 OpenAPI를 의미하고요

대신에 Dart OpenAPI를 사용하기 위해서는 회원가입과 키를 발급 받아야 해요.

 

API: 서버에 접근하는 '창구'와 같은 것
우리도 어디 업무를 볼 때 안에 있는 내용을 알지 못하지만 창구에서 대화를 통해 우리가 원하는 것을 
제공받잖아요. 
급하다고 막무가내로 다 창구로 가서 요청하면 복잡해져서 요구를 들어주기 힘들어서 번호표를 나눠줘서
차근차근 처리하잖아요. 키가 그것과 비슷해요.
요청이 너무 많아서 서버가 힘들지 않게 하기위해서 키를 발급하는 거라 보시면 될 것 같아요. 

 

키를 발급하는 것은 따로 올리지는 않을께요.

dart의 정보를 사용하기 위해 dart-fss를 설치해줘야 해요

설치는 간단하게

# dart-fss 설치
!pip install dart-fss

 

이제 dart 라이브러리를 받아서 사용해보죠.

 

api_key라는 변수를 입력하고 거기에 자신의 dart 키를 입력해요.

 

발급 받은 키가 맞지 확인하기 위해 set_api_key로 확인

맞다면 이제 데이터를 받아 올 수 있게 됩니다.

 

# 확인
dart_fss.set_api_key(api_key=api_key)

 

회사 리스트를 받아서 출력하기 위해 get_corp_list()를 받아서 

 

.corps로 출력하면 1차적인 준비가 끝나 거예요.

 

상장, 비상장 종목을 확인하기 위한 사람들은 ' stock_code'라는 열에 종목이 있으면 상장, 없으면 비상장 이예요.

(null은 알 수 없거나 or 없다는 의미로 이해하시면 편할 것 같네요)

 

그래서 있으면 상장이니 'null'이 들어가면 안되니 notnull을 붙여서 출력 

비상장을 원하면 'isnull'로 null을 기준으로 구해보시면 간편해요. 

# 상장 종목
df_list =df[df['stock_code'].notnull()]
df_list.count()

# 비상장 종목
df_list_not =df[df['stock_code'].isnull()]
df_list_not.count()

특정 기업만 알고 싶을 때는 조건을 제시하면 됩니다.

 

# 'corp_name'에서 특정 기업 이름 조건을 제시
corp_code = df_list.loc[(df['corp_name']== '카카오')].iloc[0,0]

# 기업 개황 조회
dart_fss.api.filings.get_corp_info(corp_code)

출력할 수 있는게 다양하다 보니 이건 dart 공식 홈페이지에서 요청하는 항목등을 확인해보시고
사용해보시는 걸 추천 드려요.

 

출력해 보시면 아시겠지만 위의 열 이름이 영어로 되어 있을 꺼예요.

이걸 알아보기 쉽게 한글로 바꿔볼께요.

.colums를 사용하면 원하는 열 이름으로 바꿀 수 있어요. 

  # 축출하고 싶은 데이터열 이름 
  df = df[['corp_name','nm','ofcps','mendng_totamt']]
  # 바꿔서 출력하고 싶은 열이름
  df.columns = ['기업명','이름','역할','보수']