
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
구글링하면서 에러 원인을 찾아보고 있는데 이유를 모르겠네요.
프린팅 해보면 결과값이 하나 나오고 멈추는 경우도 있고 5개 나오고 멈추는 경우도 있습니다.
리스트가 나와야 숙제가 마무리 될 거 같은데 완성이 안 되네요. ㅜㅜ
import dart_fss as dart_fss
import pandas as pd
import time
api_key = 'fa37eab15155575f9ee507c3ca19832'
dart_fss.set_api_key(api_key=api_key)
all = dart_fss.api.filings.get_corp_code()
df = pd.DataFrame(all)
df_listed = df[df['stock_code'].notnull()]
df_list50 = df_listed.sample(50)
def get_differ(com):
corp_code = df_listed[df_listed['corp_name'] == com].iloc[0,0]
if corp_code is None:
print(f"에러: {com}")
return None
data = dart_fss.api.info.emp_sttus(corp_code, '2021', '11011')
df = pd.DataFrame(data['list'])
df = df[['corp_name', 'sexdstn', 'jan_salary_am']]
df_result = pd.DataFrame()
doc = {
'기업명': com,
'연봉(남)' : df[df['sexdstn'] == '남'].iloc[-1, -1],
'연봉(여)' : df[df['sexdstn'] == '여'].iloc[-1, -1]
}
df_result = df_result.append(doc, ignore_index = True)
df_result['연봉(남)'] = pd.to_numeric(df_result['연봉(남)'].str.replace(',', ''))
df_result['연봉(여)'] = pd.to_numeric(df_result['연봉(여)'].str.replace(',', ''))
df_result['differ'] = df_result['연봉(남)'] - df_result['연봉(여)']
df_result['평균'] = (df_result['연봉(남)'] + df_result['연봉(여)']) / 2
return df_result
corp_list = df_list50['corp_name'].tolist()
print(corp_list)
com_list = []
for com in corp_list:
com_result = get_differ(com)
if com_result is None:
continue
print(com_result)
time.sleep(2)
com_list.append(com_result)
print(com_list)
프린트 + 에러코드:
['GH신소재', '화림모드', '하림지주', '대원미디어', '오리온', '디와이씨', '신세계', '로케트전기', '한컴지엠디', '유니포인트', '파나케이아', '효성오앤비', '신원종합개발', '현대공업', '재영솔루텍', '대성홀딩스', '신세계톰보이', '삼성공조', '큐러블', '에스와이제이', '아시아퍼시픽4호선박투자회사', '씨티알모빌리티', '이레아이엔씨', '메리츠종합금융', '원풍물산', '넥스트아이', '나라엠앤디', '엔지켐생명과학', '보락', '제로원인터랙티브', '진바이오텍', '현대건설', '티와이홀딩스', 'CMG제약', '이큐셀', '일진전기', '에스케이에이씨피씨제4호기업인수목적', '레고켐바이오', '에이티세미콘', '이엠넷', '알엔투테크놀로지', '코엔텍', '티앤알바이오팹', '삼양패키징', 'SDN', 'KPX케미칼', '아이센스', '메타바이오메드', '대창솔루션', '이상네트웍스']
<ipython-input-118-d750ed305491>:24: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
df_result = df_result.append(doc, ignore_index = True)
기업명 연봉(남) 연봉(여) differ 평균
0 GH신소재 34443000 16743000 17700000 25593000.0
---------------------------------------------------------------------------
NoDataReceived Traceback (most recent call last)
<ipython-input-118-d750ed305491> in <cell line: 42>()
41 com_list = []
42 for com in corp_list:
---> 43 com_result = get_differ(com)
44 if com_result is None:
45 continue
3 frames
/usr/local/lib/python3.10/dist-packages/dart_fss/errors/checker.py in check_status(**kwargs)
45 if err is not None:
46 msg = kwargs.get('message')
---> 47 raise err(msg)
NoDataReceived: 조회된 데이타가 없습니다.
