데이터분석 3주차 강의 후기 [국비지원_스파르타 코딩클럽]

    728x90

    스파르타 코딩클럽 데이터분석 3주차 강의 후기

    스파르타 코딩클럽 데이터분석 3주차 강의후기

     

     

    데이터분석 3주차 강의도 다 들었다..!

    오늘은 Dart-FSS-Read the Docs  페이지를 참고해서 상장종목과 비상장종목 회사의 정보를 출력해봤다.

    이 중에 제일 인상깊게 봤던 건 연봉 TOP 5 (5억 이상 상위 5인) 정보였다.

    세상에 마상에 연봉이 이렇게까지 높은 사람도 있구나.. 하면서 봤던..ㅎ

    혹시 우리나라 TOP 5의 연봉이 얼마인지 궁금하신 분들은 밑에 강의자료 참고하시면서 코딩 한 번 해보시길..!

    ♣ 데이터분석 3주차 강의노트 참고 ♣   https://nasena.tistory.com/17

    그래도 이번 강의는 반복되는 내용이 많아서 진도를 따라갈수록 내용이 수월하게 내 것이 되는 듯한 느낌이 들었다. 그런데 왜 막상 혼자 해보려고 하면 머리가 백지가 되는지,,

    그래서 숙제할 때도 강의 해설과 강의자료를 계속 참고하면서 했다.

    계속 연습하다보면 혼자서도 잘 할 수 있겠지?

     

    밑에는 3주차 숙제로 나온 문제와 내가 작성한 답이다. 

     

    *문제: 남녀 평균 급여 차이가 가장 '안' 나는 회사 찾아보기

     

    ▶ 직원 정보 코드스니펫

    corp_code = df_listed[df_listed['corp_name'] == '카카오'].iloc[0,0]
    data = dart_fss.api.info.emp_sttus(corp_code, '2021', '11011')
    
    pd.DataFrame(data['list'])

     

    ① 한 종목만 뽑아보기

    corp_code = df_listed[df_listed['corp_name'] == '카카오'].iloc[0,0]
    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 = {
        '기업명' : '카카오',
        '연봉(남)' : 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

    : df_result = pd.DataFrame() 새로 하나를 만들고,

    : doc = {  } 를 만들어서

    : df_result = df_result.append로 그대로 넣음

    : pd.to_numeric( )으로 문자 → 숫자로 바꾸기

     

     

    첫 번째 슬라이드 결과를 doc 이용해서 두 번째 슬라이드 결과처럼 만듦.

    01

     

    ② def 함수 이용하기

    def get_salary(name):
      corp_code = df_listed[df_listed['corp_name'] == '카카오'].iloc[0,0]
      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 = {
          '기업명' : name,
          '연봉(남)' : 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(',',''))
    
      return df_result

     

    ③ 여러 종목 뽑아보기

    names = list(df_listed.sample(10)['corp_name'])
    
    dfs=[]
    for name in names:
     try:
      df = get_salary(name)
      dfs.append(df)
     except:
       print(f'error - {name}')
      
    df_result = pd.concat(dfs)
    
    df_result['차이(남-여)'] = df_result['연봉(남)'] - df_result['연봉(여)']
    df_result['평균'] = (df_result['연봉(남)'] + df_result['연봉(여)'])/2
    
    df_result.sort_vlaues(by = '차이(남-여)', ascending = True)

     

    끝 !

    728x90

    댓글