일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 분자생물학
- 뒤센형근위축증
- 신체증강
- 근위축증
- 해달책방
- Hypemachine
- 북튜버
- 방랑자들
- 관심경제
- 키메라연구
- 책리뷰
- 히치하이커를위한안내서
- 2018노벨문학상
- 하이프머신
- 빡빡이아저씨
- 유발하라리
- 북리뷰
- 애덤피오리
- 초사회화
- 호모데우스
- 은하수를여행하는히치하이커
- 신체설계자
- 유튜버
- 스파르타코딩클럽
- 시난아랄
- 데이터보호
- 올가토카르추크
- 북트레일러
- 크리스퍼카스9
- 유전자가위
Archives
- Today
- Total
해달책방
스파르타코딩클럽 파이썬 데이터분석 개발일지 Day3 본문
dart-fss 라이브러리를 이용하여 dart전자공시에 있는 상장 / 비상장 기업들을 분석하기
https://dart-fss.readthedocs.io/en/latest/
DART-FSS — dart-fss documentation v0.3.10 documentation
© Copyright 2021, Sungwoo Jo Revision f2df35f9.
dart-fss.readthedocs.io
블로그 내 Open Dart API 메뉴 중
* 사업보고서 주요정보 : 상장+비상장 회사 정보 다 있음
* 상장기업 재무정보 : 상장회사 정보만 있음
4가지 메뉴 두루두루 잘 씀
어떻게 쓰느냐?
예시
우선 상장회사, 비상장 회사를 df를 기준으로 묶어줌
corp_code = df_listed[df_listed['corp_name'] == '카카오'].iloc[0,0]
data = dart_fss.api.info.indvdl_by_pay(corp_code, '2021', '11011')
df = pd.DataFrame(data['list'])
요게 기본으로 돌아가는 명령어
df = pd.DataFrame(data['list'])
df = df_temp[['corp_name','nm','ofcps','mendng_totamt']]
df.columns = ['기업명','이름','역할','보수']
df['보수'] = pd.to_numeric(df['보수'].str.replace(',',''))
df.dtypes
df.sort_values(by='보수',ascending=False)
원하는 필드를 뽑고 이름 붙이기
텍스트를 숫자로 바꾸기 ( dtypes는 int 확인용)
보수 기준으로 내림차순 정렬
def get_salary_top(name):
corp_code = df_listed[df_listed['corp_name'] == name].iloc[0,0]
data = dart_fss.api.info.indvdl_by_pay(corp_code, '2021', '11011')
df = pd.DataFrame(data['list'])
df = df[['corp_name','nm','ofcps','mendng_totamt']]
df.columns = ['기업명','이름','역할','보수']
df['보수'] = pd.to_numeric(df['보수'].str.replace(',',''))
return df
def로 반복하고 싶은 명령어를 함수지정
names = ['삼성전자','LG에너지솔루션','SK하이닉스','NAVER','삼성바이오로직스','삼성전자우','카카오','삼성SDI','현대차','LG화학','기아','POSCO홀딩스','KB금융','카카오뱅크','셀트리온','신한지주','삼성물산','현대모비스','SK이노베이션','LG전자','카카오페이','SK','한국전력','크래프톤','하나금융지주','LG생활건강','HMM','삼성생명','하이브','두산중공업','SK텔레콤','삼성전기','SK바이오사이언스','LG','S-Oil','고려아연','KT&G','우리금융지주','대한항공','삼성에스디에스','현대중공업','엔씨소프트','삼성화재','아모레퍼시픽','KT','포스코케미칼','넷마블','SK아이이테크놀로지','LG이노텍','기업은행']
dfs = []
for name in names:
try:
df = get_salary_top(name)
df.append(df_temp)
except:
print(f'없음 - {name}')
df_result = pd.concat(dfs)
df_result.sort_values(by='보수',ascending=False)
회사명을 반복해서 넣어 줌
여러가지 사례 많음
남여 연봉 차이가 가장 적은 순으로 랜덤 10개 기업 뽑는 방법
머리로는 이제 얼추 for문을 쓰는 방법을 이해하기 시작했으나..
즉흥적으로 코드 입력하는건 아직 쉽지 않음
그래도 이해한 것만으로 다행이라고 생각하며 반복의 반복을 거듭해야 하겠다