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

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

들어가기 전

이번에는 데이터를 통해 나이별로 월급에 차이가 있는 지, 있다면 언제 가장 많이 많는 지 등에 대해 분석해보고자 한다.


분석할 데이터

나이별 월급 차이 , 연령대별 월급 차이


데이터 가져오기

데이터 출처

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

분석할 데이터

Koweps_hpc16_2021_beta1.sav

사용할 데이터 선정

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

구분코드변수명
태어난 연도h16_g4birth
일한달의 월 평균 임금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={
  'h16_g4': 'birth',
  'p1602_8aq1': 'income',
})

확인

data[['birth','income']].head(5)
brithIncome
01945.0NaN
11948.0165.0
21942.0NaN
31962.0366.0
41963.0190.0

데이터 분석하기

태어난 연도 데이터 전처리

조사 설계서에 따르면 태어난 연도 변수는 다음과 같다.

구분
태어난 연도 (~2020)
모름 / 무응답9999

태어난 연도 이상치 확인

data['birth'].describe()
birth
count13144.000000
mean1969.845785
std24.398032
min1907.000000
25%1949.000000
50%1968.000000
75%1990.000000
max2020.000000

💡 max 값이 2020인 것으로 보아 이상치는 없는 것으로 확인된다.

✏️ birth 데이터 분석
2021년 조사 대상자들의 평균 태어난 연도는 1969년이다.
태어난 연도는 1907 ~ 2020년이며, 1949년 ~ 1990년에 많이 분포되어 있다.


태어난 연도 결측치 확인

data['birth'].isna().sum()
0

💡 결측치 없음



나이별 월급 차이

1. 나이 변수 만들기 (파생 변수 만들기)

data = data.assign(age = 2021 - data['birth'] +1)

확인

data['age'].describe()
age
count13144.000000
mean52.154215
std24.398032
min2.000000
25%32.000000
50%54.000000
75%73.000000
max115.000000

💡 2021년 조사 대상자의 평균 나이는 52세이다. 전체 범위는 2~11세이며 32~ 73세에 가장 많이 분포되어 있다.


2. 나이별 평균 임금 데이터 만들기

age_income = data.dropna(subset=['income']) \
  .groupby('age') \
  .agg(mean_income = ('income','mean'))

✏️ income 이 결측치인 것은 제외한다.

확인

age_income.head(5)
agemean_income
20.0200.000000
21.098.375000
22.0137.269231
23.0168.909091
24.0165.675676

3. 그래프로 확인하기

sns.lineplot(data=age_income, x='age', y='mean_income')

💡 20대에서 40대까지 월급이 대체로 증가하는 추세를 보인다. 40대 후반에 약 450만 원으로 가장 많이 받고 이후 지속적으로 감소하는 추세를 보인다. 은퇴하는 나이인 60세 전후로 하락폭이 크며 70대에는 20대보다 더 적은 월급을 받는 것을 알 수 있다.


연령대 별 월급 차이

1. 연령대별 파생변수 만들기

data = data.assign(age_group = np.where(data['age'] < 20 , '10대', np.where(data['age']<30 ,'20대', np.where(data['age']<40,'30대', np.where(data['age']<50, '40대', np.where(data['age']<60, '50대', np.where(data['age']<70, '60대', '60대 이상')))))))

확인

data['age_group'].head(5)
age_group
060대 이상
160대 이상
260대 이상
360대
450대

2. 연령대별 평균 월급 데이터 만들기

age_group_income = data.dropna(subset=['income']) \
  .groupby('age_group') \
  .agg(mean_income = ('income', 'mean'))
age_group_income

✏️ income 이 결측치인 것은 제외한다.

age_groupmean_income
20대213.234513
30대306.410326
40대373.382122
50대357.914255
60대242.562604
60대 이상73.704348

3. 그래프로 확인하기

plt.rcParams.update({'font.family': 'AppleGothic'})
sns.lineplot(data=age_group_income, x='age_group', y='mean_income')

💡 20대부터 40대까지 평균 월급은 꾸준히 증가하는 추세를 보인다. 40대에 평균 373만원으로 가장 많이 받으며 이후 하락세를 보인다.

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

0개의 댓글