用Python 做數據處理必看:12 個使效率倍增的 Pandas 技巧

2020-12-06 Python火火

前言

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中代表分類變量。

相關焦點

  • 數據處理必看:如何讓你的 pandas 循環加快 71803 倍
    雷鋒網 AI 開發者按,如果你使用 python 和 pandas 進行數據分析,那麼不久你就會第一次使用循環了。然而,即使是對小型數據集,使用標準循環也很費時,你很快就會意識到大型數據幀可能需要很長的時間。當我第一次等了半個多小時來執行代碼時,我找到了接下來想與你共享的替代方案。標準循環數據幀是具有行和列的 pandas 對象。
  • 數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
    數據科學愛好者 Parul Pandey 在近日發表了一篇博文,分享了在數據科學中非常實用的 10 個小技巧。雷鋒網 AI 科技評論將他的文章編譯整理如下。有時候,一點小小的黑客行為可以節省時間,挽救生命。一個小小的快捷方式或附加組件有時會被證明是天賜之物,並且可以真正提高生產力。所以,下面是我最喜歡的一些技巧,我以本文的形式一起使用和編譯它們。
  • 快速提升效率,這6個 Pandas 技巧一定要知道
    pandas是python中常用的數據分析庫,出現頻率非常高,而且pandas功能之多讓人咋舌,即使pandas老手也沒法保證能高效使用pandas做數據分析。這篇文章目的梳理幾個高效實用的pandas小技巧,供大家參考。1.
  • Python數據處理包,pandas 乾貨知識,關於軸的理解
    更多 Python 數據處理的乾貨,敬請關注!!!!前言axis 表示軸,是處理多維數據時用於表示維度方向的概念,在 pandas 中大部分的方法都有 axis 參數,因為 pandas 需要調用者告訴他,需要處理的是哪個維度的數據。
  • Pandas 必知必會的使用技巧,值得收藏!
    本期的主題是關於python的一個數據分析工具pandas的,歸納整理了一些工作中常用到的pandas使用技巧,方便更高效地實現數據分析。 df = pd.DataFrame({'Sp':['a','b','c','d','e','f'], 'Mt':['s1', 's1', 's2','s2','s2','s3'], 'Value':[1,2,3,4,5,6], 'Count':[3,2,5,10,10,6]}) df df.iloc
  • Python:將XML數據存儲到Pandas DataFrame中
    可擴展標記語言(XML)是一種標記語言,它以人類和機器可讀的格式對數據進行編碼。XML在各種程序中用於構造、存儲和傳輸數據。在這篇文章中,我們將討論如何使用python xml庫中的 「ElementTree」模塊來解析xml數據並將數據存儲在panda DataFrame中。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十七):IF函數代替者
    此系列文章收錄在:數據大宇宙 > 數據處理 > E-pd轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • Pandas 數據處理|Datetime 時間模塊在 Pandas 中的使用
    Datatime 作為 Python 中的時間模塊類型,處理時間有關數據是非常方便的, Pandas 作為數據分析程序包同樣也支持 DataTime 數據機制,例如1,函數 to_datetime() 將數據列表中的 Series 列轉化為 datetime 類型,#Convert the type to datetimeapple.Date =
  • 更高效地利用 Jupyter+pandas 進行數據分析,6 種常用數據格式效率對比!
    來源 | 早起Python(ID:zaoqi-python
  • 提高數據處理效率,一行代碼開啟Pandas四倍速!
    快來了解新庫Modin,可以分割pandas的計算量,提高數據處理效率,一行代碼即刻開啟Pandas四倍速。首先了解一些基礎知識:Pandas作為Python中用於處理數據的庫,能簡單且靈活地處理不同種類、大小的數據。除此之外,Pandas還有許多函數有助於輕鬆處理不同數據。
  • 6個提升效率的pandas小技巧
    pandas是python中常用的數據分析庫,出現頻率非常高,而且pandas功能之多讓人咋舌,即使pandas老手也沒法保證能高效使用pandas做數據分析。這篇文章目的梳理幾個高效實用的pandas小技巧,供大家參考。1.
  • PandaSQL:一個讓你能夠通過SQL語句進行pandas的操作的python包
    Pandas是近年來最好的數據操作庫之一。它允許切片、分組、連接和執行任意數據轉換。如果你熟練的使用SQL,那麼這篇文章將介紹一種更直接、簡單的使用Pandas處理大多數數據操作案例。假設你對SQL非常的熟悉,或者你想有更可讀的代碼。或者您只是想在dataframe上運行一個特殊的SQL查詢。或者,也許你來自R,想要一個sqldf的替代品。
  • 用R也可以跑Python了
    真是個千古難題!如果你主要從事數據分析、統計建模和可視化,R大概是你的不二之選。但如果你還想來搞點深度學習,整個自然語言處理,那你可還真得用Python。後果是,寫個for loop還出bug真的是家常便飯。報警!面對這種困境的絕不止你一個人!最近的KDnuggets Analytics的軟體調查中,Python和R位居數據科學和機器學習軟體的前兩名。
  • 大數據分析Python NumPy庫使用教程
    在處理數據時,有一個功能強大的庫可以極大地提高代碼的效率,尤其是在處理大型數據集時:NumPy。 掌握陣列將使您能夠一次對大量數據進行計算,而不必逐行循環,從而節省了時間和處理能力。 隨著課程深入NumPy的更高級應用程式,您還將學習如何評估內存使用情況,並且將了解NumPy的局限性。
  • 盤點Pandas 的100個常用函數
    作者 | 劉順祥 來源 | 數據分析1480 這一期將分享我認為比較常規的100個實用函數,這些函數大致可以分為六類,分別是統計匯總函數、數據清洗函數、數據篩選、繪圖與元素級運算函數、時間序列函數和其他函數。統計匯總函數數據分析過程中,必然要做一些數據的統計匯總工作,那麼對於這一塊的數據運算有哪些可用的函數可以幫助到我們呢?
  • Python數據分析利器,Pandas入門介紹,幫你便捷高效處理複雜數據
    關於Python的數據分析,當我們遇到的數據量小、數據結構簡單時,可以通過字典、列表等Python常見的數據結構來處理。但是當我們面對的大量數據以及複雜數據的局面時,就需要用一些專門用於數據分析的擴展庫來處理數據了。今天給大家介紹一個Python裡專門用來做數據分析和處理的擴展庫。
  • 數據工程師需要掌握的 18 個 Python 庫
    所以使用 pip install Twisted-18.9.0-cp37-cp37m-win32.whl 來安裝,然後使用pip install scrapy 來安裝scrapy就可以了數據獲取Beautiful SoupBeautiful Soup也是一個從網站爬取數據的庫,他提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。
  • ImagePy——UI界面支持開放插件的Python開源圖像處理框架
    簡介ImagePy 是用 python 編寫的開源圖像處理框架。它的 UI 接口、圖像數據結構和表數據結構分別是基於 wxpython、numpy 和 pandas 的。此外,它支持任何基於 numpy 和 pandas 的插件,這些插件可以輕鬆地在 scipy.ndimage、scikit-image、simpleitk、opencv 和其他圖像處理庫之間進行通信。
  • 想成為高效數據科學家?不會Pandas怎麼行
    要想成為一名高效的數據科學家,不會 Pandas 怎麼行?Python 是開源的,它很棒,但是也無法避免開源的一些固有問題:很多包都在做(或者在嘗試做)同樣的事情。如果你是 Python 新手,那麼你很難知道某個特定任務的最佳包是哪個,你需要有經驗的人告訴你。有一個用於數據科學的包絕對是必需的,它就是 pandas。
  • 利用python做t檢驗
    使用 ttest_1samp檢驗-雙邊)檢驗兩對獨立的正太數據或近似正太分布的均值是否相等;(python用ttest_ind檢驗-雙邊)檢驗一對配對樣本均值的差是否等於某一個值;(python用ttest_rel檢驗-雙邊)檢驗回歸模型的解釋變量對被解釋變量是否有顯著性影響;python如何操作t檢驗?