


一、数据来源
import numpy as np #导入库import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt%matplotlib inline
titanic = sns.load_dataset("titanic")titanic.head() #数据概览
二、问题研究
-
泰坦尼克号乘客信息的基本情况。 -
乘客信息与生还数据是否有关联。
三、数据清洗
titanic.isnull().sum() #查看是否具有缺失值
titanic.info() #数据情况
sns.set(style="darkgrid", palette="muted", color_codes=True)sns.distplot(titanic[titanic['age'].notnull()]['age']) #distplot函数查看乘客的年龄分布
titanic['age'] = titanic['age'].fillna(titanic['age'].mean())sns.distplot(titanic['age'])
sns.countplot(x="embarked",data=titanic) #绘制类别计数柱状图
titanic['embarked'] = titanic['embarked'].fillna('S')titanic.isnull().sum()
titanic.head()
titanic = titanic.drop(['survived','pclass','sibsp','parch','who','adult_male','deck','embark_town'],axis=1)titanic.head() #删除多余的字段,数据清洗
四、数据探索
sns.countplot(x="sex",data=titanic)
sns.boxplot(x='sex',y='age',data=titanic)
sns.countplot(x="class",data=titanic)
sns.violinplot(x="class", y="age", data=titanic)
sns.countplot(x="alone",data=titanic)
sns.countplot(x="alive",data=titanic)
sns.countplot(x='alive',hue='sex',data=titanic)
g = sns.FacetGrid(titanic, col='sex') #利用网格技术g.map(sns.countplot, 'alive') #不同性别生还情况
def agelevel(age):if age <= 16:return 'child'elif age >= 60:return 'aged'else:return 'midlife'titanic['age_level'] = titanic['age'].map(agelevel) #对年龄分级,分开老人和小孩的数据
titanic.head() #年龄等级
sns.countplot(x='age_level',data=titanic)
sns.countplot(x='alive',hue='age_level',data=titanic)
g = sns.FacetGrid(titanic, col='class', row='alone') #网格技术g.map(sns.countplot, 'alive')



