[譯] pandas 指南:做更高效的資料科學家
雲棲君導讀:Python是開源的,所以有很多開源固有的問題。如果你是Python新手,很難知道針對特定任務的包哪個是最好的。你需要有經驗的人來告訴你。今天我要告訴你們的是:在資料科學中,有一個軟體包是你們需要學習的,那就是pandas。
而pandas真正有趣的地方是,很多其他的包也在裡面。pandas是一個核心包,因此它具有來自其他各種包的特性。
pandas類似於Python中的Excel:它使用表(即DataFrame)並對資料進行轉換,但它還能做更多。
如果你已經熟悉Python,可以直接進入第三部分。
現在讓我們開始:
pandas包最基本的功能
1、讀取資料:
sep變數代表分隔符。因為Excel中的csv分隔符是“;”,因此需要顯示它。編碼設定為“latin-1”以讀取法語字元。nrows=1000表示讀取前1000行。skiprows=[2,5]表示在讀取檔案時將刪除第2行和第5行
最常用的函式:read_csv, read_excel
還有一些很不錯的函式:read_clipboard、read_sql
2、寫入資料
index=None將簡單地按原樣寫入資料。如果你不寫index=None,會得到額外的行。
我通常不使用其他函式,比如to_excel,to_json,to_pickle,to_csv,雖然它們也做得很好,但是csv是儲存表最常用的方法。
3、檢查資料:
.head(3)列印資料的前3行,.tail()函式將檢視資料的最後一行。
列印第8行。
將第8行值列印在“column_1”上。
列印第4行到第6行。
pandas的初級功能
1、邏輯運算
如果要根據邏輯操作對資料進行運算,在使用& (AND)、~ (NOT)和| (OR)等邏輯操作之前和之後新增“(”&“)”。
不要為同一列編寫多個OR,最好是使用.isin()函式。
2、基本繪圖
多虧了matplotlib包,這個特性才得以實現。就像我們在介紹中說的,它可以直接用在pandas身上。
圖 1 .plot() 輸出示例
繪製分佈圖(直方圖)
圖 2 .hist() 函式輸出示例
如果你使用Jupyter,在繪圖之前,不要忘記寫這一行(在程式碼中只寫一次)
3、更新資料
將' column_1 '的第8行值替換為' english '
在一行中更改多行值
3、pandas的中級功能
現在你可以做一些在Excel中很容易做的事情。讓我們來挖掘一些在Excel中做不到的神奇事情。
1、計算功能
圖 3 .value_counts() 輸出示例
2、對全行、全列或所有資料的操作
len()函式應用於“column_1”的每個元素
map()操作將一個函式應用於列的每個元素。
pandas的另一個特點是進行鏈式操作。它可以幫助你在一行程式碼中執行多個操作,從而更加簡單和高效。
.apply()將函式應用於列。
.applymap()將一個函式應用於表(DataFrame)中的所有單元格。
3、tqdm包
在處理大型資料集時,pandas可能需要一些時間來執行.map()、.apply()、.applymap()操作。tqdm是一個非常有用的包,它可以幫助預測這些操作何時完成。
用pandas設定tqdm
將.map()替換為.progress_map(),.apply()和.applymap()也是一樣
圖4 這是你在Jupyter上看到的的進度條
4、相關矩陣和散射矩陣
圖 5.corr() 函式會得到相關矩陣
圖 6散射矩陣的例子,它繪製同一圖表中兩列的所有組合
pandas的高階功能
1ã行列合併
在pandas中,行列合併非常簡單。
合併3列只需要一行程式碼
2、分組
分組一開始並不簡單,但是如果掌握其語法,你將發現這非常簡單。
按列分組,選擇要在其上操作函式的另一列。reset_index()將資料重新生成DataFrame(表)
圖 7使用鏈式操作,只需一行程式碼
3、遍歷行
iterrows()迴圈兩個變數:行索引和行(上面程式碼中的i和row)。
總體來說,pandas是一個幫助資料科學家快速閱讀和理解資料的工具包,它也可以說是Python如此優秀的原因之一。我還可以展示更多pandas包其他有趣的特點,但以上所述足以讓人理解為什麼資料科學家離不開pandas包。總之,pandas包有以下特點:
1、 簡單易用,隱藏了所有複雜和抽象的計算;
2、非常直觀;
3、快速。
本文由阿里云云棲社群組織翻譯。
文章原標題《Be a more efficient data scientist, master pandas with this guide
》,譯者:黃小凡,審校:袁虎。
程式設計師必看電影片單,高分燒腦假期必備!
終於等到你!阿里正式向 Apache Flink 貢獻 Blink 原始碼
2019年開發者必讀!20位阿里技術大牛們幫你列了一份經典書單!