使用Python和Pandas进行泰坦尼克号数据分析

为了提高我的数据分析技能,我最近参加了有关Udacity的“数据分析入门”课程。 本课程的重点是了解使用Python和以下库的数据分析过程:NumPy,Pandas,Matplotlib。 凭借python的基本背景以及分别在数据分析中的知识,这是对数据整理/修改,研究关系以及创建有用的见解进行共享的很好的入门。 我的课程测验代码可以在其他笔记本中找到(第1课代码,第2课代码),它们是我自己的测验代码和从讲座中复制的代码的组合。 为了总结课程并巩固我的学习,我对Titanic数据集做了一个基础数据分析项目。

我之所以选择该项目的Titanic数据集,是因为我以前的项目已经很熟悉它,并且希望将更多的精力放在实现分析的技术概念上。 我也喜欢Titanic数据集,因为它易于定义非常清晰的客观函数来预测乘客的生存。 我通常按​​照explorer> wrangle> dive deep> draw Insights的过程进行操作,以下总结了我在每个步骤中对Python / Pandas进行数据分析所学的知识。 可以在此处找到用于此分析的Jupyter Notebook。

我首先将CSV读取到熊猫数据框中,然后使用“ .head()”和“ .describe()”方法来了解数据的外观。 之前已经使用过数据集,我对数据的外观有所了解,但是,获得数据的高级信息让我印象深刻。 另外,尽管“泰坦尼克号”数据集很小,但我很惊讶地看到它能以多快的速度读入数据框并使用。

根据我过去的经验,我知道年龄是影响乘客生存的主要因素,但是在上面的图片中,我的熊猫让超级容易发现的是,数据集中缺少170多个年龄(通过观察计算乘客ID和年龄)。 我认为这是测试我的摔跤技巧的数据点。

根据以前的经验,我知道性别也是旅客生存的一个非常重要的方面,因此我从分别查找男女的平均年龄开始,目的是用各自的平均值填写每个性别的NaN年龄。 我成功地按性别对数据进行了分组,并取了每个数据的平均值,发现这两种性别的平均年龄都在30岁左右。我个人对此过程中的问题最多。 通过性别查找均值非常简单,但是对男人和女人应用“ .fillna()”方法给我带来了挑战。 在找不到可行的解决方案的情况下,我决定只填写所有年龄段的“ NaN”,而不论性别如何,所有男性和女性的平均年龄。 这不是最佳选择,但似乎很合理。

我从数据争用中获得的最大收获又回到了将数据读入数据帧的简便性。 在更新数据框中的值时犯了许多错误之后,我可以轻松地重新读取数据,更新数据框。 在excel中做类似的事情会更大。

将数据放在合适的位置,我将数据分为不同的子集,然后应用“ .hist()”,“。count”和“ .size()”方法来更深入地研究数据元素与彼此。 查看按幸存者分组的乘客年龄直方图,您可以看到幸存者的年龄(橙色)朝下端倾斜。 另外,鉴于大的蓝色尖峰表明许多NaN处于无法存活的年龄,在此也很清楚。

观察按性别分组的幸存者的数量也显示出一些有趣的见解,这表明与男子相比,幸存的女性比例要高得多。

最后,我调查了每位乘客所在的舱位,并假设较高的舱位往往会存活更多。 将数据分组为存活的数据并进行分类,然后运行“ .size()”方法,表明一目了然,较高比例的上层阶级得以幸存。

阶级,性别和年龄显然是决定乘客是否能够幸存的主要因素,但更重要的是熊猫让我进行此分析的难易程度。 在8行草率的代码中,我能够获得对该数据的宝贵见解,而使用其他工具则需要更长的时间。 尽管这是一个相当简单的分析,但我非常高兴看到正确的工具如何使数据分析变得容易。 继续学习!

最初发布在 github.com上 。