前言
Python正迅速成為數據科學家偏愛的語言,這合情合理。它擁有作為一種程式語言廣闊的生態環境以及眾多優秀的科學計算庫。如果你剛開始學習Python,可以先了解一下Python的學習路線。
Python學習路線圖
本文旨在提供Python數據處理的12種方法。文中也分享了一些會讓你的工作更加便捷的小技巧。
開始工作
首先我要導入要用的模塊,並把數據集載入Python環境。
1、布爾索引(Boolean Indexing)
如何你想用基於某些列的條件篩選另一列的值,你會怎麼做?例如,我們想要一個全部無大學學歷但有貸款的女性列表。這裡可以使用布爾索引。代碼如下:
data.loc[(data["Gender"]=="Female") & (data["Education"]=="Not Graduate") & (data["Loan_Status"]=="Y"), ["Gender","Education","Loan_Status"]]
2、Apply函數
Apply是擺弄數據和創造新變量時常用的一個函數。Apply把函數應用於數據框的特定行/列之後返回一些值。這裡的函數既可以是系統自帶的也可以是用戶定義的。例如,此處可以用它來尋找每行每列的缺失值個數:
輸出結果:
由此我們得到了想要的結果。
注意:第二個輸出使用了head()函數,因為數據包含太多行。
3、替換缺失值
『fillna()』 可以一次解決這個問題。它被用來把缺失值替換為所在列的平均值/眾數/中位數。
輸出: ModeResult(mode=array([『Male』], dtype=object), count=array([489]))
返回了眾數及其出現次數。記住,眾數可以是個數組,因為高頻的值可能不只一個。我們通常默認使用第一個:
mode(data['Gender']).mode[0]
'Male'
現在可以填補缺失值,並用上一步的技巧來檢驗。
由此可見,缺失值確定被替換了。
注意這是最基本的替換方式,其他更複雜的技術,如:
缺失值建模用分組平均數(平均值/眾數/中位數)填充
4、透視表
Pandas可以用來創建 Excel式的透視表。例如,「LoanAmount」這個重要的列有缺失值。
5、多重索引
你可能注意到上一步驟的輸出有個奇怪的性質。每個索引都是由三個值組合而成。這叫做多重索引。它可以幫助運算快速進行。
注意:
多重索引需要在loc中用到定義分組group的元組(tuple)。這個元組會在函數中使用。
需要使用.values[0]後綴。因為默認情況下元素返回的順序與原資料庫不匹配。在這種情況下,直接指派會返回錯誤。
6、二維表
這個功能可被用來獲取關於數據的初始「印象」(觀察)。這裡我們可以驗證一些基本假設。
7、數據框合併
當我們有收集自不同來源的數據時,合併數據框就變得至關重要。
現在可以把它與原始數據框合併:
注意這裡的 『values』無關緊要,因為我們只是單純計數。
8 、給數據框排序
Pandas可以輕鬆基於多列排序。方法如下:
註:Pandas 的「sort」函數現在已經不推薦使用,我們用 「sort_values」函數代替。
9、繪圖(箱型圖&直方圖)
許多人可能沒意識到Pandas可以直接繪製箱型圖和直方圖,不必單獨調用matplotlib。只需要一行代碼。
data.boxplot(column="ApplicantIncome",by="Loan_Status")
data.hist(column="ApplicantIncome",by="Loan_Status",bins=30)
可以看出獲得/未獲得貸款的人沒有明顯的收入差異,即收入不是決定性因素。
10、 用Cut函數分箱
有時把數值聚集在一起更有意義。
11、為分類變量編碼
編碼前後計數不變,證明編碼成功。
12、在一個數據框的各行循環迭代
通常來說手動定義變量類型是個好主意。如我們檢查各列的數據類型:
#檢查當前數據類型:
data.dtypes
載入這個文件之後,我們能對每行迭代,把用『type』列把數據類型指派到『feature』 列對應的項目。
現在信用記錄這一列的類型已經成了『object』 ,這在Pandas中代表分類變量。