우당탕탕 개발공부

파이썬 데이터 분석 - 데이터 분석 [ titanic 타이타닉 데이터 분석 ① ] 본문

✍ Study/데이터 분석

파이썬 데이터 분석 - 데이터 분석 [ titanic 타이타닉 데이터 분석 ① ]

냥냥서 2023. 3. 17. 13:27

학회를 시작하면서 mpg, titanic 데이터를 분석했다. 혼자서 공부할 때 연습해봤던 데이터라서 어렵게 느껴지지는 않았지만.. 가설을 세우는 건 항상 어려운 일 같음..😂

 


이번에 공부하면서 알게 된 사실은 타이타닉 데이터를 다운받지 않고 사용할 수 있다는 것 !

seaborn 라이브러리에서 기본적으로 제공하는 csv파일이 있는데 그 중 'titanic' 데이터도 있다.

*seaborn 은 파이썬 시각화의 대표주자로, matplotlib을 기반으로 작동하는 패키지

 

import pandas as pd
import numpy as np
import seaborn as sns


sns.get_dataset_names()

get_dataset_names( )를 통해서 기본으로 제공되는 데이터 이름을 볼 수 있다.

 

df = sns.load_dataset('titanic')
df

15개의 컬럼

survied 생존여부 ( 0 = 사망, 1 = 생존 )
pclass 객실 등급
sex 성별
age 나이
sibsp 함께 탑승한 형제 및 배우자 수
parch 함께 탑승한 자녀 및 부모 수
fare 요금
embarked 탑승지 이름 앞글자
- C : Cherbourg
- Q : Queenstown
- S : Southampton
class 객실 등급
- First : 1등급
- Second : 2등급
- Third : 3등급
who 남자, 여자, 아이
adult_male 성인 남자 여부
True: 성인 남자
False : 그 외
deck 선실 번호 첫 알파벳
embark_town 탑승지 이름
alive 생존 여부
no : 사망
yes : 생존
alone 혼자 탑승했는 지 여부

 


'class'가 높을 수록 평균 나이가 높을 것 이다.
df_class = df.groupby('class').agg(mean_age = ('age','mean'))
df_class

확인한 결과 예상대로 First클래스의 평균나이가 가장 높은 것을 알 수 있다.

 

 

높은 class에 탑승할 수록 생존인원이 많을 것 이다.
df_hclass = df.query("alive == 'yes'").groupby('class').agg( alive = ('class','count'))
df_hclass.plot.bar(rot=0)
print(df_hclass)

First 클래스의 생존인원이 가장 많기는 하지만
Second보다 Third에 탑승한 생존자가 더 높은 것을 볼 수 있다.

 

남자 생존율이 여자 생존율보다 높을까?
df_survied = df.groupby('sex').agg(mean_survived = ('survived', 'mean'))
print(df_survied * 100)
print(df_survied.plot.bar(rot=0))

남성은 약 19% , 여성은 약 74% 으로 여성 생존율이 더 높은 것을 알 수 있다.

 

탑승한 가족과 생존율에 관계가 있을까?
df['Family'] = df['sibsp']+df['parch'] +1
df

sibsp+parch 를 더한 값을 'Family'라는 새로운 변수에 추가

sibsp 함께 탑승한 형제 및 배우자 수
parch 함께 탑승한 자녀 및 부모 수

sns.countplot( x = 'Family', hue = 'survived', palette=palette1 ,data=df);

palette는

palette1 = sns.color_palette('Paired')

이렇게 추가해줬음

혼자 탑승한 사람(1)의 사망률이 가장 높은 것을 볼 수 있다.