介紹
? ? ? ?只要我們要用Python來做數(shù)據(jù)分析赋荆,就避免不了用到Pandas。Python有很多用于數(shù)據(jù)清洗和數(shù)據(jù)準備的庫,但是很少有數(shù)據(jù)分析和數(shù)據(jù)建模的庫。Pandas的出現(xiàn)彩倚,使得我們能在Python中解決大多數(shù)數(shù)據(jù)分析的問題,而不用切換到一些特殊語言如R中扶平,這樣就減少了我們許多的工作量帆离。
內(nèi)容
1.Pandas下載與基本教程
2.Pandas數(shù)據(jù)探索的基本流程
3.用Pandas對Titanic數(shù)據(jù)進行初步探索
Pandas下載與基本教程
我們可以從官網(wǎng)上下載Pandas,也可以在終端中直接下載:
easy_install pandas
Pandas的簡單教程是Pandas作者Wes McKinney寫的10-minute tour of pandas结澄。
不過要認真學習Pandas的話還應(yīng)該買一本作者的書:
Pandas數(shù)據(jù)探索基本流程
在數(shù)據(jù)處理中哥谷,我們經(jīng)常會有一些常用的步驟,比如讀取數(shù)據(jù)麻献,處理缺失值等们妥。這里我貼出Pandas的Cheatsheet,里面包含一些簡單的Pandas數(shù)據(jù)操作赎瑰。
Pandas實戰(zhàn)
? ? ? ?通過對上述知識的學習王悍,我們知道了數(shù)據(jù)分析探索的一點點過程。下面我們就進行一些實戰(zhàn)餐曼,把這些東西鞏固一番。
獲取數(shù)據(jù)
首先鲜漩,我們的數(shù)據(jù)來自于kaggle的泰坦尼克號,我們從中獲取數(shù)據(jù)源譬,一個是訓練數(shù)據(jù),用來訓練模型孕似,一個測試數(shù)據(jù)踩娘,用來評估模型。數(shù)據(jù)分析探索主要是利用訓練數(shù)據(jù)喉祭。
讀取數(shù)據(jù)
得到數(shù)據(jù)之后养渴,我們就要讀取數(shù)據(jù),其數(shù)據(jù)格式為csv泛烙,我們就可以使用上面所述的方法理卑,進行讀取.
這里我用的是ipython的notebook,有興趣的可以自己去看看蔽氨。前面都是引入模塊藐唠,最后才是讀取數(shù)據(jù)帆疟。
了解數(shù)據(jù)
? ? ?讀取完數(shù)據(jù)之后,我們就要看看數(shù)據(jù)的結(jié)構(gòu)宇立,有多少個變量踪宠,多少個樣本。
? ? ? 這樣我們就知道妈嘹,這個數(shù)據(jù)有12個變量柳琢,891個樣本。知道大概結(jié)構(gòu)后润脸,我們又想知道柬脸,變量有哪些?變量的類型是什么津函?
? ? ?這樣我們就知道了數(shù)據(jù)變量有PassengerID,Survived,Pclass,Age,Name,Sex,SibSp,Parch,Ticket,Fare,Cabin,Embarked12個肖粮,結(jié)合kaggle上對這些變量的描述,我們就對這些變量的類型有所了解尔苦。
探索數(shù)據(jù)
? ? ? ?于是我們就開始了數(shù)據(jù)探索與數(shù)據(jù)清洗之旅涩馆。遇到數(shù)據(jù)處理,我們首先處理信息量比較多的變量允坚,一般先是連續(xù)型變量魂那,接著是分類變量,然后才是文本稠项,而對于一些對我們預(yù)測數(shù)據(jù)無關(guān)緊要的變量涯雅,可以選擇直接刪除。
? ? ? ?在這我們就只有年齡和船費為連續(xù)型變量展运,我們先要處理年齡這個常見變量活逆。我們先要看看其是否有缺失值。
? ? ? ?這里我們就看出來缺失值有177個拗胜,占總樣本20%蔗候,不算太多,也不算太少埂软。對于異常值的處理锈遥,我會另外寫一篇文章,專門介紹異常值的處理勘畔,這里我們就用常用的方法——平均值代替所灸。
我們分析一下Age的數(shù)值度量:
? ? ? ?其中位數(shù)與均值相同,我們初步判定其為正態(tài)分布炫七,要確定是否為正態(tài)分布爬立,還需要將其可視化,其可視化方法诉字,在我的另一篇文章有說過懦尝。
從這里我們就可以看出知纷,連續(xù)型變量Age趨近于正態(tài)分布。接下來以同樣的方法分析船費陵霉。
可以看出琅轧,船費不是正態(tài)分布,其有少許異常值踊挠,需要進行一些處理后才能建模乍桂。
探索數(shù)據(jù)分析
? ? ? ?對于分類數(shù)據(jù)的探索,我們應(yīng)根據(jù)分類數(shù)據(jù)對目標數(shù)據(jù)的影響來分析效床,比如我們可以看Pclass對Survived的影響睹酌。
Pclass第三層存活的人數(shù)比較多,也可能會是因為人數(shù)比較多剩檀,所以存活人數(shù)多憋沿,主要要看存活比率。
這樣就可以看出沪猴,1層的存活率比較高辐啄。其實我們還可以看看,Sex和Pclass對Suvived影響
結(jié)束語
? ? ? ? 這樣运嗜,我們就簡單的探索了一下基本的變量壶辜,得到了一些變量的基本概貌。還有很多的問題等待我們?nèi)ソ鉀Q担租,如何處理異常值值砸民?名稱是否與生存率有關(guān)?我們用什么算法去建立模型奋救?這些問題讓數(shù)據(jù)分析變的無比的吸引人岭参。
參考
http://www.analyticsvidhya.com/blog/2014/09/data-munging-python-using-pandas-baby-steps-python/