반응형
9-8 종교 유무에 따른 이혼율 - 종교가 있으면 이혼을 덜 할까?
분석 절차
1단계 변수 검토 및 전처리
- 종교
- 혼인 상태
2단계 변수 간 관계 분석
- 종교 유무에 따른 이혼율 표 만들기
- 그래프 만들기
종교 변수 검토 및 전처리하기
1. 변수 검토하기
2. 전처리
welfare['religion'].dtypes # 변수 타입 출력
##출력: dtype('float64')
welfare['religion'].value_counts() # 빈도 구하기
"""
2.0 7815
1.0 6603
Name: religion, dtype: int64
"""
# 종교 유무 이름 부여
welfare['religion'] = np.where(welfare['religion'] == 1, 'yes', 'no')
# 빈도 구하기
welfare['religion'].value_counts()
"""
no 7815
yes 6603
Name: religion, dtype: int64
"""
# 막대 그래프 만들기
sns.countplot(data = welfare, x = 'religion')
혼인 상태 변수 검토 및 전처리하기
1. 변수 검토하기
2. 파생변수 만들기 - 이혼 여부
welfare['marriage_type'].dtypes # 변수 타입 출력
##출력: dtype('float64')
welfare['marriage_type'].value_counts() # 빈도 구하기
"""
1.0 7190
5.0 2357
0.0 2121
2.0 1954
3.0 689
4.0 78
6.0 29
Name: marriage_type, dtype: int64
"""
# 이혼 여부 변수 만들기
welfare['marriage'] = np.where(welfare['marriage_type'] == 1, 'marriage',
np.where(welfare['marriage_type'] == 3, 'divorce', 'etc'))
## 이혼 여부별 빈도
# marriage별 분리
# marriage별 빈도 구하기
n_divorce = welfare.groupby('marriage', as_index = False) \
.agg(n = ('marriage', 'count'))
n_divorce
# 막대 그래프 만들기
sns.barplot(data = n_divorce, x = 'marriage', y = 'n')
종교 유무에 따른 이혼율 분석하기
1. 종교 유무에 따른 이혼율표 만들기
2. 그래프 만들기
# etc 제외
# religion별 분리
# marriage 추출
# 비율 구하기
rel_div = welfare.query('marriage != "etc"') \
.groupby('religion', as_index = False) \
['marriage'] \
.value_counts(normalize = True)
rel_div
# divorce 추출
# 백분율로 바꾸기
# 반올림
rel_div = rel_div.query('marriage == "divorce"') \
.assign(proportion = rel_div['proportion'] * 100) \
.round(1)
rel_div
# 막대 그래프 만들기
sns.barplot(data = rel_div, x = 'religion', y = 'proportion')
연령대 및 종교 유무에 따른 이혼율 분석하기
1. 연령대별 이혼율표 만들기
2. 연령대별 이혼율 그래프 만들기
3. 연령대 및 종교 유무에 따른 이혼율표 만들기
4. 연령대 및 종교 유무에 따른 이혼율 그래프 만들기
# etc 제외
# ageg별 분리
# marriage 추출
# 비율 구하기
age_div = welfare.query('marriage != "etc"') \
.groupby('ageg', as_index = False) \
['marriage'] \
.value_counts(normalize = True)
age_div
## 연령대 및 이혼 여부별 빈도
# etc 제외
# ageg별 분리
# marriage 추출
# 빈도 구하기
welfare.query('marriage != "etc"') \
.groupby('ageg', as_index = False) \
['marriage'] \
.value_counts()
# 초년층 제외, 이혼 추출
# 백분율로 바꾸기
# 반올림
age_div = age_div.query('ageg != "young" & marriage == "divorce"') \
.assign(proportion = age_div['proportion'] * 100) \
.round(1)
age_div
# 막대 그래프 만들기
sns.barplot(data = age_div, x = 'ageg', y = 'proportion')
# etc 제외, 초년층 제외
# ageg, religion별 분리
# marriage 추출
# 비율 구하기
age_rel_div = welfare.query('marriage != "etc" & ageg != "young"') \
.groupby(['ageg', 'religion'], as_index = False) \
['marriage'] \
.value_counts(normalize = True)
age_rel_div
# divorce 추출
# 백분율로 바꾸기
# 반올림
age_rel_div = age_rel_div.query('marriage == "divorce"') \
.assign(proportion = age_rel_div['proportion'] * 100) \
.round(1)
age_rel_div
# 막대 그래프 만들기
sns.barplot(data = age_rel_div, x = 'ageg', y = 'proportion', hue = 'religion')
※ 해당 내용은 <Do it! 파이썬 데이터 분석>의 내용을 토대로 학습하며 정리한 내용입니다.
반응형
'데이터 분석 학습' 카테고리의 다른 글
10장 텍스트 마이닝 (1) (0) | 2023.04.30 |
---|---|
9장 데이터 분석 프로젝트 - 한국인의 삶을 파악하라! (9) (0) | 2023.04.29 |
9장 데이터 분석 프로젝트 - 한국인의 삶을 파악하라! (7) (0) | 2023.04.27 |
9장 데이터 분석 프로젝트 - 한국인의 삶을 파악하라! (6) (0) | 2023.04.26 |
9장 데이터 분석 프로젝트 - 한국인의 삶을 파악하라! (5) (0) | 2023.04.25 |