ABC부트캠프: Day8[한국복지패널 데이터분석]
ABC 부트캠프 [한국복지패널 데이터분석]
이번 시간은 지난 인구공공데이터를 활용한 데이터 분석을 이어
한국복지패널 데이터를 활용한 한국인의 삶을 분석하는 시간을 가져본다 ! !
교수님이 이번 데이터 분석은 아주 논란이 될 만한 무서운 주제를 갖고 오셨다
바로 <한국에서의 성별에="" 따른="" 월급="" 차이="">한국에서의>
라는 주제다! !
사실 분석을 하기전에도 이미 결과가 예상이되는 주제이지만
그래도 데이터 분석으로의 결과는 어떨지 배워보는 시간이기에 분석을 시작해보자 !
성별에 따른 월급 차이 - 성별에 따라 월급이 다를까?
1. 성별 데이터 확인하기
print('성별 데이터 타입 확인: ', welfare['sex'].dtypes)
print('성별 데이터 결측치 확인: ', welfare['sex'].isna().sum()) # insa는 결측치 확인 함수
print('성별 빈도 확인')
welfare['sex'].value_counts()
성별 데이터 타입 확인: float64
성별 데이터 결측치 확인: 0
성별 빈도 확인
2.0 7913
1.0 6505
Name: sex, dtype: int64
2. 성별 데이터 전처리
# 성별데이터(1.0-> male, 2.0-> female)
welfare['sex'] = np.where(welfare['sex'] == 1, 'male', 'female')
print('성별 빈도 확인')
welfare['sex'].value_counts()
성별 빈도 확인
female 7913
male 6505
Name: sex, dtype: int64
2-1. 그래프로 확인
sns.countplot(data=welfare, x='sex')
plt.show()
3. 월급 데이터 확인하기
print('월급 데이터 타입 확인: ', welfare['income'].dtypes)
print('월급 데이터 결측치 확인: ', welfare['income'].isna().sum()) # insa는 결측치 확인 함수
print('월급 요약 통계량 확인')
welfare['income'].describe()
월급 데이터 타입 확인: float64
월급 데이터 결측치 확인: 9884
월급 요약 통계량 확인
count 4534.000000
mean 268.455007
std 198.021206
min 0.000000
25% 150.000000
50% 220.000000
75% 345.750000
max 1892.000000
Name: income, dtype: float64
3-1. 그래프로 월급 분포도 확인
# 그래프로 월급 분포도 확인
sns.histplot(data=welfare, x='income')
plt.show()
4. 월급 데이터 전처리 -> 결측치(NaN) 삭제
welfare.dropna(subset=['income'], inplace=True) # dropna - null 데이터를 지워주는 함수
print('월급 데이터 결측치 확인: ', welfare['income'].isna().sum())
월급 데이터 결측치 확인: 0
5. 성별 월급 평균표 만들기
# 성별 기준으로 월급의 평균표 만들기
sex_income = welfare.groupby('sex', as_index=False).agg(mean_income = ('income', 'mean'))
sex_income
sex mean_income
0 female 186.293096
1 male 349.037571
6. 성별에 따른 월급 분석 차이
# 남성의 평균 월급이 여성의 월급의 두 배 가까움
sns.barplot(data=sex_income, x='sex', y='mean_income')
plt.show()
이렇게 하여 결과로는 남성의 평균 월급이
여성의 월급의 2배에 가깝다는 것을 알 수 있다.
나이와 월급의 관계 - 몇 살 때 월급을 자아 많이 받을까?
다음은 나이와 월급의 관계를 비교해보는 데이터 분석을 해보자
1. 나이 데이터 확인하기
print('나이 데이터 타입 확인: ', welfare['birth'].dtypes)
print('나이 데이터 결측치 확인: ', welfare['birth'].isna().sum()) # insa는 결측치 확인 함수
print('나이 요약 통계량 확인')
welfare['birth'].describe() # 결측치가 없으면 dropna 안해도 된다.
나이 데이터 타입 확인: float64
나이 데이터 결측치 확인: 0
나이 요약 통계량 확인
count 4534.000000
mean 1971.144685
std 15.290056
min 1928.000000
25% 1961.000000
50% 1972.000000
75% 1982.000000
max 2001.000000
Name: birth, dtype: float64
1-1. 그래프로 나이 분포도 확인
# 그래프로 나이 분포도 확인
sns.histplot(data=welfare, x='birth')
plt.show()
2. 생년월일 전처리 -> 파생 변수 생성 -> 생년월일을 활용하여 나이 데이터 만들기
welfare = welfare.assign(age = 2019-welfare['birth']+1)
welfare['age']
2 78.0
3 58.0
7 86.0
8 80.0
14 42.0
...
14401 54.0
14402 58.0
14405 73.0
14410 64.0
14416 22.0
Name: age, Length: 4534, dtype: float64
2-1. 그래프로 생년월일 분포도 확인
# 그래프로 생년월일 분포도 확인
sns.histplot(data=welfare, x='age')
plt.show()
3. 나이에 따른 월급 평균표 만들기
age_income = welfare.groupby('age').agg(mean_income=('income', 'mean'))
age_income
mean_income
age
19.0 162.000000
20.0 121.333333
21.0 136.400000
22.0 123.666667
23.0 179.676471
... ...
88.0 27.000000
89.0 27.000000
90.0 27.000000
91.0 20.000000
92.0 27.000000
74 rows × 1 columns
4. 나이와 월급의 관계 분석
sns.lineplot(data=age_income, x='age', y='mean_income')
plt.show()
4-1. 가장 월급을 많이 받는 나이는?
# 가장 월급을 많이 받는 나이는?
age_income['mean_income'].max()
386.1958762886598
age_income.idxmax()
mean_income
age
44.0 386.195876
44세, 386만원이라고 하네요
5. 나이 및 성별 월급 평균표 만들기
sex_age_income = welfare.groupby(['age', 'sex'], as_index=False).agg(mean_income=('income', 'mean'))
sex_age_income
age sex mean_income
0 19.0 male 162.000000
1 20.0 female 87.666667
2 20.0 male 155.000000
3 21.0 female 124.000000
4 21.0 male 186.000000
... ... ... ...
140 89.0 male 27.000000
141 90.0 female 27.000000
142 91.0 female 27.000000
143 91.0 male 13.000000
144 92.0 female 27.000000
145 rows × 3 columns
6. 나이 및 성별 월급 차이 분석
sns.lineplot(data=sex_age_income, x='age', y='mean_income', hue='sex')
plt.show()
이렇게 lineplot으로
X축은 나이,
Y축은 월급의 분포로,
남성과 여성의 월급차이를 분석해봤다
이 분석된 결과를 보고 마냥 기분이 썩 좋지는 않았는데 그때 교수님이
노력하고 성공해서 돈 많이 벌면된다고, 성별과는 무관하다는 아주 멋진 말씀을 하셨다👍
나는 능력이 있든 없든 성공의 근본적인 요인은
자신감
이라고 생각한다
자신이 언젠가 성공
할 수 있다는 자신있고 긍정적인 사람이 된다면
꼭 그렇게 될 수 있을 것이라고 말해주고 싶다.
댓글남기기