[Python] 파이썬 데이터 분석 프로젝트 (조건별 월급 차이 분석 3 - 직종별 월급 차이)

Kylie·2022년 10월 18일
0
post-thumbnail

들어가기 전

직업에 따라 월급은 다양할 것이다. 데이터를 통해 어떤 직종이 가장 많은 월급을 받는 지, 가장 많이 받는 직종과 가장 적게 받는 직종 간 평균 월급 차이는 어느 정도인 지 등을 분석하여 알아보자.


분석할 데이터

직종별 월급 차이


데이터 가져오기

데이터 출처

https://www.koweps.re.kr:442/main.do

분석할 데이터

Koweps_hpc16_2021_beta1.sav

사용할 데이터 선정

16차 머지데이터_변수명_20220404.xlsx 참고

구분코드변수명
직종h16_eco9job
일한달의 월 평균 임금p1602_8aq1imcome

데이터 분석 준비

필요한 패키지 설치

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

데이터 랜더

origin_data = pd.read_spss('data/Koweps_hpc16_2021_beta1.sav')
data = origin_data.copy()

변수명 변경

data = data.rename(columns={
  'p1602_8aq1': 'income',
  'h16_eco9': 'job_code'
})

데이터 분석

1. 직종 코드 파일 불러오기

사용할 직종 코드 분류 데이터

(2021년 16차 한국복지패널조사) 조사설계서-가구용(beta1).xlsx ➡️ koweps_2021.xlsx로 변경하여 사용

필요한 패키지 설치

pip install openpyxl

데이터 랜더

origin_job_list = pd.read_excel('data/koweps_2021.xlsx', sheet_name='직종코드(2019 신분류)')
job_list = origin_job_list.copy()

확인

job_list.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 156 entries, 0 to 155
Data columns (total 5 columns):
 #   Column              Non-Null Count  Dtype  
---  ------              --------------  -----  
 0   대분류                 10 non-null     object 
 1   중분류                 52 non-null     object 
 2   소분류                 156 non-null    int64  
 3   Unnamed: 3          156 non-null    object 
 4   직종코드는 소분류의 네자리를 넣음  0 non-null      float64
dtypes: float64(1), int64(1), object(3)
memory usage: 6.2+ KB

변수명 변경

job_list = job_list.rename(columns={'Unnamed: 3' : 'job', '소분류':"job_code"})

확인

job_list.head(5)


필요없는 열 삭제

job_list = job_list.drop(job_list.columns[[0,1,4]], axis=1)

확인

job_codejob
0111의회 의원∙고위 공무원 및 공공단체 임원
1112기업 고위 임원
2121행정 및 경영 지원 관리자
3122마케팅 및 광고∙홍보 관리자
4131연구∙교육 및 법률 관련 관리자

2. 데이터 결합하기

job_code로 data와 job_list 결합하기

data = data.merge(job_list, how='left', on='job_code')

확인

data[['job_code', 'job', 'income']].head(5)
job_codejobIncome
0NaNNaNNaN
1942.0건물 관리원 및 검표원165.0
2762.0전기공NaN
3855.0금속기계 부품 조립원366.0
4399.0고객 상담 및 기타 사무원190.0

3. 직업별 평균 월급 데이터 만들기

job_income = data.dropna(subset=['job','job_code','income']) \
  .groupby('job', as_index=False) \
  .agg(mean_income = ('income', 'mean'))
job_income.head(5)
jobmean_income
0가사 및 육아 도우미103.537313
1간호사303.400000
2감정∙기술영업및중개관련종사자395.636364
3건물 관리원 및 검표원188.774194
4건설 및 광업 단순 종사자273.552632

4. 직종별 평균 월급 데이터 분석하기

job_income.describe()
mean_income
count148.000000
mean348.789352
std152.525313
min30.000000
25%247.250000
50%334.700000
75%429.626140
max922.000000

💡 2021년 조사 결과 평균 피조사자들은 평균 348만 원을 받으며 약 247만 원 ~ 430만 원 사이에서 임금을 받고 있는 것으로 보인다. 월급이 가장 높은 직종과 가장 낮은 직종의 월급차이는 약 3배 정도 차이가 나는 것을 알 수 있다.


직종별 평균 월급 상위 5

top5 = job_income.sort_values('mean_income', ascending=False).head(5)
top5
jobmean_income
60법률 전문가922.000
99의료 진료 전문가831.875
63보험 및 금융 관리자812.000
121제관원 및 판금원757.000
140항공기∙선박 기관사 및 관제사687.000

💡 2021년 조사 결과 직종별 평균 월급은 922만 원으로 법률 전문가가 가장 많았다. 5개 직종 모두 평균 (348만 원)보다 많은 월급을 받고 있는 것을 알 수 있다.


직종별 평균 월급 하위 5

bottom5 = job_income.sort_values('mean_income').head(5)
bottom5
jobmean_income
76세탁 관련 기계 조작원30.000000
34기타 서비스 관련 단순 종사자82.245614
128청소원 및 환경미화원85.729381
33기타 돌봄∙보건 및 개인 생활 서비스 종사자93.971429
0가사 및 육아 도우미103.537313

💡 2021년 조사 결과 세탁 관련 기계 조작원이 평균 30만원으로 가장 적은 월급을 받고 있다는 것을 알 수 있다. 하위 5개 직종 모두 평균 (348만 원)보다 적게 받고 있으며 1사분위수, 3사분위수에도 속하지 않음을 알 수 있다.

profile
올해보단 낫겠지....

0개의 댓글