Python 是當今世界熱門的編程語言,而它的應(yīng)用領(lǐng)域就是使用 Pandas 數(shù)據(jù)分析,使用 Pandas 我們可以 Excel/CSV/TXT/MySQL 等數(shù)據(jù)讀取,然后進行各種清洗、過濾、透視、聚合分析,也可以直接繪制折線圖、餅圖等數(shù)據(jù)分析圖表,在功能上它能夠?qū)崿F(xiàn)自動化的對大文件處理,能夠?qū)崿F(xiàn) Excel 的幾乎所有功能并且更加強大。

對數(shù)學專業(yè)的人來說,Pandas可以作為一個數(shù)據(jù)分析切入點。下面融躍小編為大家介紹12種用于數(shù)據(jù)分析的Pandas技巧。

1. Boolean Indexing

在表格中,如果你想根據(jù)另一列的條件篩選當前列的值,你會怎么做?舉個例子,假設(shè)我們想要一份所有未畢業(yè)但已經(jīng)辦理了貸款的女性清單,具體的操作是什么?在這種情況下,Boolean Indexing,也就是布爾索引能提供相應(yīng)的功能。

2. Apply Function

Apply函數(shù)是使用數(shù)據(jù)和創(chuàng)建新變量的常用函數(shù)之一。在對DataFrame的特定行/列應(yīng)用一些函數(shù)后,它會返回相應(yīng)的值。這些函數(shù)既可以是默認的,也可以是用戶自定義的。

3. 替換缺失值

對于替換缺失值,fillna()可以一步到位,它會用目標列的平均值/眾數(shù)/中位數(shù)更新缺失值。

4. Pivot Table

Pandas可以用來創(chuàng)建MS Excel樣式數(shù)據(jù)透視表(Pivot Table)。

5. Multi-Indexing

如果你仔細觀察了“替換缺失值”那一節(jié)的輸出,你可能會發(fā)現(xiàn)一個奇怪的現(xiàn)象,就是每個索引都由3個值組合而成。這被稱為多重索引(Multi-Indexing),它有助于操作的快速執(zhí)行。

注:

多索引需要元組來定義loc語句中的索引組。這是一個在函數(shù)中要用到的元組。

values [0]的后綴是必需的,因為默認情況下返回的值與DataFrame的值不匹配。在這種情況下,直接分配會出現(xiàn)錯誤。

6. Crosstab

這個函數(shù)可以被用來塑造對數(shù)據(jù)的初始“感覺(概覽)”,通俗地講,就是我們可以驗證一些基本假設(shè)。如在貸款案例中,“Credit_History”是否會影響個人貸款成功?這可以用交叉表(Crosstab)測試,

7. 合并DataFrame

當我們需要將來自不同來源的信息進行整合時,合并DataFrame(或者你們愛說數(shù)據(jù)框)就變得很重要了。

8. DataFrame排序

Pandas可以輕松基于多列進行排序。

9. 繪圖(Boxplot和直方圖)

很多人可能不知道自己能直接在Pandas里繪制盒形圖和直方圖,無需單獨調(diào)用matplotlib,一行命令就能搞定。

10. Cut function for binning
有時候聚類后的數(shù)據(jù)會更有意義。以今天*近車禍頻發(fā)的自動駕駛汽車為例,如果我們要用它捕獲的數(shù)據(jù)重現(xiàn)某條路上的交通情況,比起一整天的流暢數(shù)據(jù),或是把一天均勻分割為24個小時,“早上”“下午”“晚上”“夜晚”“深夜”這幾個關(guān)鍵時段的數(shù)據(jù)包含的信息量更多,也更有效。

11. 為nominal數(shù)據(jù)編碼
有時候我們需要對稱名數(shù)據(jù)(nominal數(shù)據(jù))重新分類,這可能是由于各種原因造成的:一些算法(如Logistic回歸)要求所有輸入都是數(shù)字,所以我們要把稱名變量重新編碼為0,1 ...(n-1)。
有時一個類別可能包含多種表達,如“溫度”可以被記錄為“High”“Medium”“Low”“H”“l(fā)ow”,其中“High”和“H”是一碼事,“Low”和“l(fā)ow”也是一碼事,但Python會認為它們是不同的。有些類別的頻數(shù)*低,所以我們應(yīng)該把它們合并起來。
為了解決這個問題,這里我們定義了一個簡單的函數(shù),它把輸入作為“字典”,然后調(diào)用Pandas的replace函數(shù)重新編碼。

12. 迭代dataframe的行

這不是一個常用的技巧,但如果遇到這種問題,相信沒人想到時候再絞盡腦汁想辦法,或者直接自暴自棄用for循環(huán)遍歷所有行。這里我們舉兩個要用到這種方法的場景:當帶有數(shù)字的nominal variable被當成數(shù)字。當某一行帶有字符(因為數(shù)據(jù)錯誤)的Numeric variable被當成分類。這時我們就要手動定義列的類別。雖然很麻煩,但這之后如果我們再檢查數(shù)據(jù)類別。

數(shù)據(jù)分析是一個很熱門有價值的職場技能,學會了 Pandas 會大的助力你的職業(yè)生涯。