스파르타코딩클럽의 강의를 참고하여 작성하였습니다.
이전 분석에서는 타이타닉 생존과 나이에 대한 상관계수가 없어보였다.
좀더 미세하게 나이대와 생존에 상관계수를 분석해 보자
https://kime2pan.tistory.com/59
목표 나이대별 생존과상관관계 구하기
1단계: 데이터 분석 기본 세팅하기
1) 라이브러리 사용 선언 하기
2) 데이터 가져오기
3) 데이터 확인 및 표 읽기
4) 공백란 제거하기
#1) 라이브러리 불러오기
import pandas as pd
import matplotlib.pyplot as plt #시각화
import numpy as np #숫자계산
import seaborn as sns #시각화
#2) 데이터 불러오기
titanic = pd.read_table('/content/train.csv',sep=',')
#3) 데이터 확인하기
titanic.head()
#4) 결측치 확인하고 제거하기
print(titanic.isnull().sum()) #확인
titanic=titanic.dropna() #결측치 제거한 데이터를 다시 타이타닉변수에 저장
2단계 데이터 분석하기
1) 데이터 통계치 요약
2) 나이대-생존 분석에 필요한 데이터 가공하기
#1) 데이터 통계치 요약하기
titanic.describe()
#2) 승객 나이에 대한 분포도 그래프 그리기
titanic['Age'].hist(bins=40,figsize=(18,8),grid=True) #hist(): 히스토그램을 그리는 함수
#3) 나이별 구분 및 생존율 확인하기->타이타닉에서 age_cat이라는 컬럼을 만들어서 타이타닉 나이정보에 0~3까지는 baby, 3초과 7까지는 children등 라벨링하여 저장
titanic['Age_cat'] = pd.cut(titanic['Age'],bins=[0,3,7,15,30,60,100],include_lowest=True,labels=['baby','children','teenage','young','adult','old'])
#4) 연령대 기준으로 평균 값 구하기 -> groupby():그룹화 하는 함수 + mean.():평균을 구하는 함수
titanic.groupby('Age_cat').mean()
titanic.describe()
데이터 통계치 요약 : 각 칼럼별 집계(평균, 수, 중간값 등)의 데이터를 요약 |
titanic['Age'].hist(bins=40,figsize=(18,8),grid=True) #hist(): 히스토그램을 그리는 함수
나이별 히스토그램 -> 2030에 몰려있는걸 알 수 있다(38살까지 전체인구의 75%가 몰려있다, 중간값 29) |
#3) 나이별 구분 및 생존율 확인하기->타이타닉에서 age_cat이라는 컬럼을 만들어서 타이타닉 나이정보에 0~3까지는 baby, 3초과 7까지는 children등 라벨링하여 저장
titanic['Age_cat'] = pd.cut(titanic['Age'],bins=[0,3,7,15,30,60,100],include_lowest=True,labels=['baby','children','teenage','young','adult','old'])
나이 구간에 따라 새로운 컬럼이 만들어 졌다 |
#4) 연령대 기준으로 평균 값 구하기 -> groupby():그룹화 하는 함수 + mean.():평균을 구하는 함수
titanic.groupby('Age_cat').mean()
나이 구간에 따라 각 행의 평균을 구한다 |
3단계 시각화 하기
#1) 그래프 크기 설정
plt.figure(figsize=(14,5))
#2) 바 그래프 그리기(x축=Age_Cat,Y축=survived)
sns.barplot(x='Age_cat',y='Survived',data=titanic)
#3) 그래프 그리기
# plt.show()
sns.barplot(x='Age_cat',y='Survived',data=titanic)
막대의 높이: 연령구간별 평균생존(1에 가까울 소록 생존), 상관계수X 검은 실선: 생존의 분포 |
추가 참고
https://zephyrus1111.tistory.com/250#c1
'학습노트 > Python' 카테고리의 다른 글
[강의노트] Python - Pandas, matplotlib 활용1 (1) | 2024.01.17 |
---|---|
[강의노트] Python 분석 - 상관계수 실습 (0) | 2024.01.16 |
[강의노트] Python 분석 - 상관계수(1) (1) | 2024.01.14 |
[강의노트] Python - 기초문법(1) - 실습 (0) | 2024.01.06 |
[강의노트] Python - 기초문법(1) (1) | 2024.01.04 |