이번에는 데이터를 통해 나이별로 월급에 차이가 있는 지, 있다면 언제 가장 많이 많는 지 등에 대해 분석해보고자 한다.
나이별 월급 차이 , 연령대별 월급 차이
https://www.koweps.re.kr:442/main.do
Koweps_hpc16_2021_beta1.sav
16차 머지데이터_변수명_20220404.xlsx 참고
구분 | 코드 | 변수명 |
---|---|---|
태어난 연도 | h16_g4 | birth |
일한달의 월 평균 임금 | p1602_8aq1 | imcome |
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)
brith | Income | |
---|---|---|
0 | 1945.0 | NaN |
1 | 1948.0 | 165.0 |
2 | 1942.0 | NaN |
3 | 1962.0 | 366.0 |
4 | 1963.0 | 190.0 |
조사 설계서에 따르면 태어난 연도 변수는 다음과 같다.
구분 | 값 |
---|---|
년 | 태어난 연도 (~2020) |
모름 / 무응답 | 9999 |
data['birth'].describe()
birth | |
---|---|
count | 13144.000000 |
mean | 1969.845785 |
std | 24.398032 |
min | 1907.000000 |
25% | 1949.000000 |
50% | 1968.000000 |
75% | 1990.000000 |
max | 2020.000000 |
💡 max 값이 2020인 것으로 보아 이상치는 없는 것으로 확인된다.
✏️ birth 데이터 분석
2021년 조사 대상자들의 평균 태어난 연도는 1969년이다.
태어난 연도는 1907 ~ 2020년이며, 1949년 ~ 1990년에 많이 분포되어 있다.
data['birth'].isna().sum()
0
💡 결측치 없음
data = data.assign(age = 2021 - data['birth'] +1)
data['age'].describe()
age | |
---|---|
count | 13144.000000 |
mean | 52.154215 |
std | 24.398032 |
min | 2.000000 |
25% | 32.000000 |
50% | 54.000000 |
75% | 73.000000 |
max | 115.000000 |
💡 2021년 조사 대상자의 평균 나이는 52세이다. 전체 범위는 2~11세이며 32~ 73세에 가장 많이 분포되어 있다.
age_income = data.dropna(subset=['income']) \
.groupby('age') \
.agg(mean_income = ('income','mean'))
✏️ income 이 결측치인 것은 제외한다.
age_income.head(5)
age | mean_income |
---|---|
20.0 | 200.000000 |
21.0 | 98.375000 |
22.0 | 137.269231 |
23.0 | 168.909091 |
24.0 | 165.675676 |
sns.lineplot(data=age_income, x='age', y='mean_income')
💡 20대에서 40대까지 월급이 대체로 증가하는 추세를 보인다. 40대 후반에 약 450만 원으로 가장 많이 받고 이후 지속적으로 감소하는 추세를 보인다. 은퇴하는 나이인 60세 전후로 하락폭이 크며 70대에는 20대보다 더 적은 월급을 받는 것을 알 수 있다.
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 | |
---|---|
0 | 60대 이상 |
1 | 60대 이상 |
2 | 60대 이상 |
3 | 60대 |
4 | 50대 |
age_group_income = data.dropna(subset=['income']) \
.groupby('age_group') \
.agg(mean_income = ('income', 'mean'))
age_group_income
✏️ income 이 결측치인 것은 제외한다.
age_group | mean_income |
---|---|
20대 | 213.234513 |
30대 | 306.410326 |
40대 | 373.382122 |
50대 | 357.914255 |
60대 | 242.562604 |
60대 이상 | 73.704348 |
plt.rcParams.update({'font.family': 'AppleGothic'})
sns.lineplot(data=age_group_income, x='age_group', y='mean_income')
💡 20대부터 40대까지 평균 월급은 꾸준히 증가하는 추세를 보인다. 40대에 평균 373만원으로 가장 많이 받으며 이후 하락세를 보인다.