티스토리 뷰
1.성별 직업 빈도 - 성별로 어떤 직업이 가장 많을까?
먼저 남성 직업 빈도 상위 10개 추출 해보자
job_male = welfare.dropna(subset = ['job']) \
.query('sex == "male"') \
.groupby( 'job' , as_index =False) \
.agg(n = ('job' , 'count')) \
.sort_values('n' , ascending = False) \
.head(10)
job_male
결측치 제거해주고 성별은 male로 고정시키자 그리고 job별로 그룹을 해주고 데이터값은 job의 빈도로 고정시키자. 이후 내림차순으로 나열하자.
# 여성 직업 빈도 상위 10개 추출
job_female = welfare.dropna(subset = ['job']) \
.query('sex == "female"') \
.groupby('job', as_index = False) \
.agg(n = ('job', 'count')) \
.sort_values('n', ascending = False) \
.head(10)
job_female
# 남성 직업 빈도 막대 그래프 만들기
sns.barplot(data = job_male, y = 'job', x = 'n').set(xlim = (0, 500))
sns.barplot( data = job_female , y = 'job' , x = 'n', hue = 'job')
결론: 남여에따라 직업이 위 그래프 처럼 다른 것을 알 수 있다.
2.종교 유무에 따른 이혼율 - 종교가 있으면 이혼을 덜 할까?
2-1) 종교 비율 구하기
welfare['religion'].value_counts() # 빈도 구하기
2.0 7815
1.0 6603
Name: religion, dtype: int64
. 위의 코드의 출력 결과를 보면 종교가 있는 사람이 6,603명, 없는 사람이 7,815명입니다. 1,2 로 되어 있으므로 컬럼을 yes & no 로 바꿔주자
# 종교 유무 이름 부여
welfare['religion'] = np.where(welfare['religion'] == 1, 'yes', 'no')
# 빈도 구하기
welfare['religion'].value_counts()
religion
no 7815
yes 6603
Name: count, dtype: int64
# 막대 그래프 만들기
sns.countplot(data = welfare, x = 'religion' , hue = 'religion')
2-2) 이혼률 구하기
일단은 결혼 여부가 코드로 되어있기에 1은 marriage로 3은 divorce로 2는 etc로 설정하자.
# 이혼 여부 변수 만들기
welfare['marriage'] = np.where(welfare['marriage_type'] == 1, 'marriage',
np.where(welfare['marriage_type'] == 3, 'divorce',
'etc'))
컬럼을 바꿨으니 이제 이혼률에 따른 데이터 프레임을 만들어주자
# 이혼 여부별 빈도
n_divorce = welfare.groupby('marriage', as_index = False) \
.agg(n = ('marriage', 'count'))
n_divorce
# 막대 그래프 만들기
sns.barplot(data = n_divorce, x = 'marriage', y = 'n', hue = 'marriage')
실습 종교 유무에 따른 이혼율 분석하기
rel_div = welfare.query('marriage != "etc"') \# etc 제외
.groupby('religion', as_index = False) \# religion별 분리
['marriage'] \# marriage 추출
.value_counts(normalize = True)# 비율 구하기
이제 종교 여부에 따른 결혼비율과 이혼비율에 대한 데이터 프레임을 만들었으니 그래프를 만들어보자
# divorce 추출
# 백분율로 바꾸기
# 반올림
rel_div = rel_div.query('marriage == "divorce"') \
.assign(proportion = rel_div['proportion'] * 100) \
.round(1)
rel_div
이혼율은 종교가 있으면 8.0%, 종교가 없으면 9.5% 입니다. 따라서 종교가 있는 사람이 이혼을 덜 한다고 볼 수 있습니다
연령대 및 종교 유무에 따른 이혼율 분석하기
welfare.query('marriage != "etc") \
.groupby('age_range' , as_index = False) \
['marriage'] \
.value_counts()
출력 결과를 보면 연령대별로 이혼율이 다릅니다. 중년층이 8.9%로 가장 높고 그 뒤로는 노년층 8.5%, 초년층 5% 순으로 높습니다.
# 연령대 및 이혼 여부별 빈도
welfare.query('marriage != "etc"') \
.groupby('age_range', as_index = False) \
['marriage'] \
.value_counts()
또한 연령대 별로 이혼 여부부별 빈도를 보았을 때 young 범위는 확연히 적은 것을 볼 수 있다. 그렇기에 분석시에 제외하겠다.!!
age_div = age_div.query('age_range != "young" & marriage == "divorce"')\
.assign(proportion = age_div['proportion'] * 100)\
.round(1)
age_div
또한 기존의 proportion 컬럼을 백분율로 바꾸고 소숫점 첫째 자리까지 반올림 하겠다. 그리고 age_div에 young을 제외한 컬럼만 뽑아내자.
sns.barplot( data = age_div , x = 'age_range' , y = 'proportion' ,hue = 'age_range')
보면 middle이 조금더 많은 이혼률을 볼 수 있다.
그렇다면 다음은 연령대 및 종교 유무에 따라 이혼률 표를 만들어보자
# etc 제외, 초년 제외
# ageg, religion별 분리
# marriage 추출
# 비율 구하기
age_rel_div = welfare.query('marriage != "etc" & age_range != "young"') \
.groupby(['age_range', 'religion'], as_index = False) \
['marriage'] \
.value_counts(normalize = True)
age_rel_div
etc와 young 범주는 제외하고 age_range와 religion끼리 묶는다 그리고 marriage만 뽑아내고 비율을 구한다.
# 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 = 'age_range', y = 'proportion',
hue = 'religion'
결론: 출력된 표와 그래프를 보면 중년과 노년 모두 종교가 없는 사람의 이혼율이 더 높습니다. 중
년은 1.3%, 노년은 1.8% 정도로 종교가 없는 사람의 이혼율이 더 높습니다.
여기까지 하겠다. 이렇게 데이터 분석을 마쳐보겠습니다. 다음은 텍스트 마이닝을 한 번 해볼게요!!

'데이터분석기초부터심화까지 > Do_it 파이썬' 카테고리의 다른 글
Do_it 파이썬 실전! 데이터 분석 프로젝트1-4 (2) | 2025.07.04 |
---|---|
Do_it 파이썬 실전! 데이터 분석 프로젝트1-3 (0) | 2025.07.04 |
Do_it 파이썬 실전! 데이터 분석 프로젝트 (3) | 2025.07.03 |
Do_it 파이썬1-6 (4) | 2025.07.02 |
Do_it 파이썬1-5 (3) | 2025.07.02 |
- Total
- Today
- Yesterday
- 코딩 #코딩처음 #비자코딩 #살려줘 #
- 벤치프레스 #벤치프레스하는법 #스미스머신벤치프레스 #가슴운동 #3대운동 #벤치프레스손목 #벤치프레스어깨 #벤치프레스허리 #벤치프레스팔
- 벤치프레스팔꿈치통증 #벤치프레스통증 #가슴운동부상 #가슴운동팔꿈치통증
- 벤치프레스어깨통증 #가슴운동어깨통증 #가슴운동 #3대운동
- 벤치프레스 허리통증 #벤치프레스 #허리통증
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |