標籤:

優達學城探索數據集項目

優達學城探索數據集項目

7 人贊了文章

項目概述

在本項目中,你將分析一個數據集,然後傳達你的發現。你將使用 Python 庫 NumPy、Pandas 和 Matplotlib 來使你的分析工作更加輕鬆。

為何要進行此項目?

此項目將向你介紹數據分析過程,以及所有工作的相互配合。後期的納米學位將重點關注數據分析過程的各個環節。

你將使用 Python 庫 NumPy、Pandas 和 Matplotlib,這些庫使你能夠更加輕鬆地在 Python 中編寫數據分析代碼!不僅如此,它們也是僱主們青睞的技能!

目錄

1、提出問題 1.1 事件背景 1.2 提出問題

2、數據整理 2.1、導入數據&查看基本信息 2.2、處理缺失值

3、數據探索 3.1 生存率基本情況 3.2 單變數探索 3.3 多變數探索

4、作出結論

5、參考資料

1、提出問題

1.1 事件背景

泰坦尼克號是一艘奧林匹克級郵輪,1912年4月15日,載著1316名乘客和891名船員的泰坦尼克號與冰山相撞,在北大西洋沉沒,該海難也被認為是20世紀人間十大災難之一。 本文旨在穿越百年,探索在生死悠關時刻,人們做出了怎樣的抉擇,將生還的機會優先給予了哪些人? 本文數據來自於官方公布的真實數據,數據來源於kaggle,網路地址:kaggle.com/c/titanic/da

1.2 提出問題

根據數據,初步思考,提出以下問題:

(1)危機發生時,女士優先的紳士風度有發揮嗎?

(2)大難當頭時,孩子獲得了更多的保護嗎?

(3)性命悠關時,富有人群是否獲得了更多的生還機會?

2、數據整理

2.1、導入數據&查看基本信息

從以上信息可發現: 該數據集有12個欄位,PassengerId:乘客編號,Survived:乘客是否存活,Pclass:乘客所在的船艙等級;Name:乘客姓名,Sex:乘客性別,Age:乘客年齡,SibSp:乘客的兄弟姐妹和配偶數量,Parch:乘客的父母與子女數量,Ticket:票的編號,Fare:票價,Cabin:座位號,Embarked:乘客登船碼頭。

共有891行數據,且年齡Age、座位號Cabin、乘客登船碼頭Embarked,有缺失值,要考慮缺失值處理的問題

2.2、處理缺失值

缺失值處理中,我們一般會刪除缺失值。pandas模塊中,提供了將包含NaN值的行刪除的方法dropna(),但其實處理缺失值最好的思路是「用最接近的數據替換它」。對於數值型數據,可用該列的數據的均值或者中位數進行替換,對於分類型數據,可利用該列數據的出現頻數最多的數據(眾數)來填充。 這兩種數據的補齊方法,其基本的出發點都是一樣的,以最大概率可能的取值來補充缺失的屬性值,只是在具體方法上有一點不同。與其他方法相比,它是用現存數據的多數信息來推測缺失值。實在處理不了的空值,可以暫時先放著,不必著急刪除。因為在後續的情況可能會出現:後續運算可以跳過該空值進行。

在前面的數據預覽中,知道有三列數據有空值:年齡Age缺失177條、座位號Cabin缺失687條、乘客登船碼頭Embarked缺失2條。其中Cabin這列數據,缺失值太多,在此次分析中沒有意義(因為我沒有想了解座位號對生成率的影響,而且我也認為這兩種關係不大),所以我可以先不管它,真正需要我處理的就是Age(數值型數據),Embarked(分類型數據)

2.2.1 處理數值型數據Age缺失值

2.2.2 處理分類型數據Embarked缺失值

3、數據探索

3.1 生存率基本情況

3.2 單變數探索

3.2.1 性別與生存率--危機關頭,女士優先嗎?

3.2.2 年齡與生存率--大難當頭,老人、小孩、成年人的生還情況如何?

從以上數據可以發現,孩子(0-10歲)人數64人,佔總人數7%,但是生存率(55%)卻是所有年齡段最高,且明顯高於其他年齡段;

說明大難當頭時,人們更傾向於讓未成年人先逃生,畢竟他們是家庭和國家的未來

3.2.3 船艙等級與生存率---有錢人會更容易獲得逃生機會嗎?

通過以上數據發現

一等艙總人數184人,佔總人數24%,生還136人,生存率63%;三等艙總人數491人,佔總人數55%,生還119人,生存率僅24%;

隨著船艙等級降低,生存率明顯降低,確實說明在性命攸關之時,社會地位高的有錢人,可能獲得了更多生還機會。

3.3 多變數探索

3.3.1 性別、船艙等級與生存率關係---女士與富人,誰更優先?

3.2.2 年齡、性別與生存率關係

3.3.3 年齡、艙位等級與生存率

總體上看,隨著船艙等級降低,各年齡段生存率都在降低; 但是異常情況是一等艙孩子生存率小於二等艙孩子生存率, 還有就是60-70年齡段二三等艙比一等艙,故有必要查看一下人數統計情況。 其次,各個船艙等級孩子的生存率都比較高,二三等艙孩子的生存率高過一等艙部分其它年齡段富人。

4、作出結論

4.1初步結論

事件中,整體的生存率只有38%,性別、年齡、船艙等級對不同群體生存率有較大影響,初步結論是:當危機發生時,女士優先、孩子優先、富人整體上優先,但是也讓位於女士和年輕人

(1)性別-女士優先

整體上看,女士生存率高達74%,而男士只有19%;

算上財富因素,買著低價票的三等艙的女士生存率(50%)都比一等艙的男士生存率(37%)高;

算上年齡因素,女士各年齡段的生存率都非常高(61%-100%);

這些都說明了當時女士優先的紳士風度讓女性有了超高的生存率。

(2)孩子(0-10歲)-孩子優先

整體上看,孩子(0-10歲)生存率(59%)最高且明顯高於其他年齡段生存率;

算上性別因素,雖然男士整體生存率只有19%,但是孩子(0-10歲)男士的生存率高達58%,且遠遠高出其他年齡階段男士生存率,即男士群體裡面生存下來的大多數是孩子;

算上財富因素,各個船艙等級孩子的生存率都比較高,二三等艙孩子的生存率高過一等艙部分其它年齡段富人

(3)富人-整體上優先,但是也讓位於女士和年輕人

整體上看,一等艙生存率63%,二等艙生存率47%,三等艙生存率24%,說明在性命攸關之時,社會地位高的有錢人,確實獲得了更多生還機會

算上性別因素,買著低價票的三等艙的女士生存率(50%)都比一等艙的男士生存率(37%)高,說明富人也把生還機會讓給了女士

算上年齡因素,各個船艙等級孩子的生存率都比較高,二三等艙孩子的生存率高過一等艙部分其它年齡段富人,說明部分富人也把生還機會讓給了孩子

4.2 限制因素

以下因素可能會對結論有所限制

(1)數據因素---船上共有2207名乘客和船員,但是樣本量只有891人,一來數據不全可能會限制結論,二來樣本是否隨機抽取也會影響結論; 三來Age變數有177條缺失值,我是通過中位數填補對缺失值做了處理,這也會引入噪音,影響結論。

(2)分析因素---由於我提出的問題就傾向於女士優先,孩子優先,富人優先,可能存在先入為主的觀念,引導我得出這樣的結論。

5、參考資料

#Python數據處理:Pandas模塊的 12 種實用技巧 python.jobbole.com/8574

#使用python中的matplotlib進行繪圖分析數據 2cto.com/kf/201407/3171

#利用python/pandas/numpy做數據分析(三)-透視表pivot_table blog.csdn.net/youngbit0

#Python seaborn matplotlib 對數據進行圖表分析 blog.csdn.net/qq_162346

#python使用matplotlib:subplot繪製多個子圖 blog.csdn.net/gatieme/a

#python 數據分析超簡單入門 : 項目實踐篇 cloud.tencent.com/commu

#Titanic數據分析報告(python) mamicode.com/info-detai

#數據分析機器學習案例 ai.51cto.com/art/201704

#python數據分析實例 pmcaff.com/entry?

#凄美故事 zhuanlan.zhihu.com/p/27

#python數據分析實戰之統計 blog.51cto.com/youernin

#探索數據集——Titanic blog.csdn.net/PatrickZh


推薦閱讀:

用戶消費信息分析案例練習
【數據點亮生活】第一站:獲取數據
一名數據科學家的日常
如何利用大數據發現非法傳銷網路?
SQL的集合運算概念

TAG:數據分析 |