变量分布统计
import pandas as pd import matplotlib.pyplot as plt titanic = pd.read_csv("../data/titanic.csv") #1.获救情况分布,共891位乘客,仅有300多位乘客幸免于难,占比38% titanic['Survived'].value_counts().plot(kind='bar',color='yellow',title='Rescue situation', rot=360) plt.show() #2.性别分布,共891位乘客,男性乘客就有577位,占比达64.76% titanic['Sex'].value_counts().plot(kind='bar',color='pink',title='Gender distribution', rot=360) plt.show() #3.船舱分布,其中三等舱人数最多,一等舱人口次之。一等舱约占1/4,三等舱约占1/2 titanic['Pclass'].value_counts().plot(kind='bar',color='green',title='Pclass distribution', rot=360) plt.show() #4.年龄分布,乘客的年龄都集中在20-40岁之间 titanic['Age'].plot(kind='hist',color='red',title='Age distribution') plt.show()
探索变量之间的关系
#构造Sex与Survived均值的条形图 sex_pivot = titanic.pivot_table(index="Sex",values="Survived") sex_pivot.plot.bar(rot=360) plt.show() #构造Class与Survived均值的条形图 class_pivot = titanic.pivot_table(index="Pclass",values="Survived") class_pivot.plot.bar(rot=360) plt.show() #构造SibSp与Survived均值的条形图 SibSp_pivot = titanic.pivot_table(index="SibSp",values="Survived") SibSp_pivot.plot.bar(rot=360) plt.show() #构造Parch与Survived均值的条形图 Parch_pivot = titanic.pivot_table(index="Parch",values="Survived") Parch_pivot.plot.bar(rot=360) plt.show()
可以看出在获救人群中女性高于男性,一等舱乘客比例高于二等和三等舱,具有1-2个堂兄弟姐妹获救的概率最高,父母/孩子有1和或3个幸存率最高。
探索多个变量与Survived的关系
# 探索多个变量与Survived的关系 import seaborn as sns g = sns.FacetGrid(titanic,col='Survived') g.map(plt.hist,'Age',bins=20) # 探索年龄与获救人数的关系: grid = sns.FacetGrid(titanic, col='Survived', row='Pclass', height=2.2,aspect=1.6) grid.map(plt.hist, 'Age', alpha=0.5, bins=20) # 探索年龄、舱位与获救人数的关系: grid = sns.FacetGrid(titanic, row='Embarked', height=2.2, aspect=1.6) grid.map(sns.pointplot, 'Pclass', 'Survived','Sex',palette='deep',order=[1,2,3],hue_order=['male','female']) grid.add_legend() # 探索登船港口、舱位、性别与获救比例的关系: grid = sns.FacetGrid(titanic, row='Embarked', col='Survived',height=2.2, aspect=1.6) grid.map(sns.barplot, 'Sex', 'Fare', alpha=0.5, ci=None, order=['female','male']) grid.add_legend() plt.show()
首先探索年龄与获救人数的关系:
- 在获救的人群中,20-40岁的人占比最多;
- 在遇难的人群中,18-30岁的人占比最多。
探索年龄、舱位与获救人数的关系:
- 一等舱获救的比例明显高于其他舱位;
- 一等舱和二等舱的孩子基本上都获救了;
- ...
探索登船港口、舱位、性别与获救比例的关系:
- 一等舱中从港口Q和港口S登船的女性基本上都获救了;
- 从C港口登船的男性获救比例很高;
- ...
同样,我们还可以加上探索登船口,性别、是否幸存与船票费用之间的关系。
明显可以看出:
- 从S和C港口登船的人中,获救的人群船票明显更贵;
- ...