해달책방

스파르타코딩클럽 파이썬 데이터분석 개발일지 Day3 본문

카테고리 없음

스파르타코딩클럽 파이썬 데이터분석 개발일지 Day3

SEA OTTER'S BOOKSHOP 2022. 9. 20. 22:34

파이썬으로 남여평균연봉 차이가 가장 적은 회사 순대로 정렬해보았다

 

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문을 쓰는 방법을 이해하기 시작했으나..

즉흥적으로 코드 입력하는건 아직 쉽지 않음

그래도 이해한 것만으로 다행이라고 생각하며 반복의 반복을 거듭해야 하겠다