zoukankan      html  css  js  c++  java
  • 泰坦尼克号数据分析

     变量分布统计

    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港口登船的人中,获救的人群船票明显更贵;
    • ...
  • 相关阅读:
    经验谈 论前端架构的重要性
    论 Angular的混乱
    DTW 算法(转)
    软件提高发射功率原理
    (转)LSI SAS 1068E Raid CentOS 5.5 安装实例浪潮NF5220系列 分类: linux
    聚类算法总结
    信号相似性的描述
    python科学计算整理
    一个无线通信类投稿的期刊list
    2012年Elsevier旗下Computer Science期刊最新SCI影响因子排名
  • 原文地址:https://www.cnblogs.com/xhj1074376195/p/14440472.html
Copyright © 2011-2022 走看看