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港口登船的人中,获救的人群船票明显更贵;
    • ...
  • 相关阅读:
    AGC037F Counting of Subarrays
    AGC025F Addition and Andition
    CF506C Mr. Kitayuta vs. Bamboos
    AGC032D Rotation Sort
    ARC101F Robots and Exits
    AGC032E Modulo Pairing
    CF559E Gerald and Path
    CF685C Optimal Point
    聊聊Mysql索引和redis跳表
    什么是线程安全
  • 原文地址:https://www.cnblogs.com/xhj1074376195/p/14440472.html
Copyright © 2011-2022 走看看