Python的12種Pandas數據處理入門技巧,你會幾個?

2021-02-13 英國求職

                   

【戰績追蹤】


本文轉自:大數據文摘

翻譯:黃念   

校對:王方思

「為什麼要學Python」這個問題,是很多從來沒有學過,或者沒有怎麼了解過Python的小白最常見的問題。

其實Python語言非常簡單,同時又很強大,最新的數據是位列2016語言排行榜第三位,而且美國,澳大利亞,加拿大,14歲以上的青少年開始官方推薦學習。

Python雖然是25歲的大叔級程式語言,但是近年來Python反而變得越來越流行,在TIOBE程式語言指數排行榜中,Python的排名長期佔據領先位置。

國外非常有名的有Google, facebook, Yahoo, YueTube, 還有美國宇航局NASA, 像著名的開源雲計算平臺openstack也是用python寫的,還有國內的豆瓣也是用python寫的。

今天主頁君就帶大家一起了解python入門的數據處理——12種有用的Pandas技巧

如果你想根據另一列的條件來篩選某一列的值,你會怎麼做?例如,我們想獲得一份完整的沒有畢業並獲得貸款的女性名單。這裡可以使用布爾索引實現。你可以使用以下代碼:

    

Apply是一個常用函數,用於處理數據和創建新變量。在利用某些函數傳遞一個數據幀的每一行或列之後,Apply函數返回相應的值。該函數可以是系統自帶的,也可以是用戶定義的。舉個例子,它可以用來找到任一行或者列的缺失值。

由此我們得到了需要的結果。

註:第二個輸出中使用了head()函數,因為結果中包含很多行。

『fillna()』可以一次性解決:以整列的平均數或眾數或中位數來替換缺失值。讓我們基於其各自的眾數填補出「性別」、「婚姻」和「自由職業」列的缺失值。

#首先導入函數來判斷眾數


結果返回眾數和其出現頻次。請注意,眾數可以是一個數組,因為高頻的值可能有多個。我們通常默認使用第一個:

現在,我們可以填補缺失值並用# 2中提到的方法來檢查。

#填補缺失值並再次檢查缺失值以確認

Pandas可以用來創建MS Excel風格的透視表。例如,在本例中一個關鍵列是「貸款數額」有缺失值。我們可以根據「性別」,「婚姻狀況」和「自由職業」分組後的平均金額來替換。 「貸款數額」的各組均值可以以如下方式確定:

如果你注意到#3的輸出,它有一個奇怪的特性。每一個索引都是由3個值組合構成的。這就是所謂的多索引。它有助於快速執行運算。

從# 3的例子繼續開始,我們有每個組的均值,但還沒有被填補。

這可以使用到目前為止學習到的各種技巧來解決。

#只在有缺失貸款值的行中進行迭代並再次檢查確認

注意:


1. 多索引需要在loc中聲明的定義分組的索引元組。這個元組會在函數中用到。

2. .values[0]後綴是必需的,因為默認情況下元素返回的索引與原數據框的索引不匹配。在這種情況下,直接賦值會出錯。

此函數用於獲取數據的一個初始「感覺」(視圖)。在這裡,我們可以驗證一些基本假設。例如,在本例中,「信用記錄」被認為顯著影響貸款狀況。這可以使用交叉表驗證,如下圖所示:

這些是絕對值。但是,要獲得快速的見解,用百分比更直觀。我們可以使用apply 函數來實現:

現在,很明顯,有信用記錄的人得到一筆貸款的可能性更高:與沒有信用記錄的人只有8%得到貸款相比,80%的有信用記錄的人獲得了一筆貸款。

然而不僅如此。其中包含了更有趣的信息。由於我已經知道有一次信用記錄是非常重要的,如果我預測擁有信用記錄的人貸款狀態是Y(貸款成功),而沒有的人為N(貸款失敗)。令人驚訝的是,我們在614個例子中會有82+378=460次的正確。這個比例高達75%!

如果你仍納悶為何我們還需要統計模型,我不會怪你。但是相信我,即使在目前這個精準度上再提高哪怕0.001%的精度仍會是一項充滿挑戰性的任務。你會接受這個挑戰嗎?

註:這個75%是基於訓練集的。測試集會略有不同,但接近。另外,我希望這能提供一些直覺,即到底為什麼哪怕0.05%的精度提升,可造成Kaggle排行榜(數據分析競賽網站——譯者注)上的名次上升500位。

當我們需要對不同來源的信息進行合併時,合併數據幀變得很重要。假設對於不同物業類型,有不同的房屋均價(INR/平方米)。讓我們定義這樣一個數據幀:

現在,我們可以將原始數據幀和這些信息合併:

透視表驗證了成功的合併操作。請注意,「value」在這裡是無關緊要的,因為在這裡我們只簡單計數。

Pandas允許在多列之上輕鬆排序。可以這樣做:

註:Pandas的「排序」功能現在已不再推薦。我們用「sort_values」代替。

很多人可能沒意識到,箱線圖和柱狀圖可以直接在Pandas中繪製,不必另外調用matplotlib。這只需要一行命令。例如,如果我們想通過貸款狀況來比較申請人收入的分布,我們可以這樣做:

可見收入本身並不是一個決定性因素, 因為獲得/未獲得貸款的人沒有明顯的收入差異。

有時如果數值聚類會更有意義。例如,如果我們試圖用時間(分鐘)對交通狀況(路上的車流量)建模。相比於如「早晨」「下午」「傍晚」「晚上」「深夜」這樣的時段,具體分鐘數可能對預測交通量不那麼相關。如此對交通建模會更直觀,也避免過度擬合。

在這裡,我們定義了一個簡單可復用的函數,可以輕鬆地用於對任何變量的分箱。

有時,我們會遇到必須修改名義變量的類別的情況。這可能是由於以下各種原因:

1. 一些算法(如邏輯回歸)要求所有的輸入都是數值型,因此名義變量常被編碼為0, 1…(n-1)

2. 有時同一個類別可以用兩種方式來表示。如溫度可能被記錄為「High(高)」「Medium(中)」「Low(低)」「H(高)」「low(低)」。在這裡,無論是「High(高)」還是「H(高)」是指同一類。同理,「Low(低)」和「low(低)」也是同一類。但是,Python會將它們視為不同分類。

3. 有些類別的頻率可能非常低,把它們歸為一類一般會是個好主意。

在這裡,我定義了一個通用的函數,以字典的方式輸入值,使用Pandas中「replace」函數來重新對值進行編碼。

 

編碼前後計數不變,證明編碼成功。

這不是一個常用的操作。畢竟你不想卡在這裡,是吧?有時你可能需要用for循環迭代所有的行。例如,我們面臨的一個常見問題是在Python中對變量的不正確處理。這通常在以下兩種情況下發生:

所以手動定義變量類型是一個好主意。如果我們檢查所有列的數據類型:

在這裡,我們看到名義變量「Credit_History(信用記錄)」被當做浮點數類型。解決這些問題的一個好方法是創建一個包括列名和類型的CSV文件。這樣,我們就可以定義一個函數來讀取文件,並指定每一列的數據類型。例如,我在這裡已經創建了一個CSV文件datatypes.csv,如下所示:

加載這個文件後,我們可以在每一行上進行迭代,以列類型指派數據類型給定義在「type(特徵)」列的變量名。

現在的信用記錄列被修改為「object」類型,這在Pandas中表示名義變量。

本文中,我們涉及了Pandas的不同函數,那是一些能讓我們在探索數據和功能設計上更輕鬆的函數。同時,我們定義了一些通用函數,可以重複使用以在不同的數據集上達到類似的目的。

置頂關注英國求職公眾號

後臺回復【入門

即可查看福利領取方式

所有福利小編將在48小時統一發放

本文轉載自大數據文摘

英國求職誠意推薦閱讀,版權歸原作者所有。

合作請聯繫:partners@DreambigCareer.com

▼▼▼

DBC Offer榜

斬獲精英offer,你也要有一張

相關焦點

  • 技 能 | Python的12種Pandas數據處理入門技巧,你會幾個?
    今天主頁君就帶大家一起了解python入門的數據處理——12種有用的Pandas技巧 如果你想根據另一列的條件來篩選某一列的值,你會怎麼做?例如,我們想獲得一份完整的沒有畢業並獲得貸款的女性名單。這裡可以使用布爾索引實現。你可以使用以下代碼:
  • Python數據處理庫pandas入門教程
    本文是對它的一個入門教程。pandas提供了快速,靈活和富有表現力的數據結構,目的是使「關係」或「標記」數據的工作既簡單又直觀。它旨在成為在Python中進行實際數據分析的高級構建塊。入門介紹pandas適合於許多不同類型的數據,包括:由於這是一個Python語言的軟體包,因此需要你的機器上首先需要具備Python語言的環境。關於這一點,請自行在網絡上搜索獲取方法。關於如何獲取pandas請參閱官網上的說明:pandas Installation。
  • Python數學建模技巧之pandas數據處理
    最常見的庫有進行矩陣運算的Numpy、進行數據處理的pandas、進行科學計算的Scipy、進行圖形繪製及科學可視化的matplotlib、進行符號計算的Sympy以及方便進行機器學習任務的Sklearn。由於今年美賽官方公告中稱,將會提前在賽題公布之前就提供下載C題數據集的方式。
  • 關於Pandas數據處理你不知道的技巧!
    旗下高端量化雲平臺當我們參加一些比賽時,我們可能要花費大量時間來處理數據。本文將由淺到深,為大家講解關於Pandas在數據清理和處理的一些技巧!,因為它不像Boston房價數據(Kaggle最經典的題目)集那樣處理得很好。
  • Python學習指南| 快速入門Pandas數據分析技巧
    首先,你不應該真的只想著去學習pandas。 雖然知道如何在資料庫中執行操作會很有用,但它不會像在數據分析過程中實際使用它的方式那樣。 你可以將你的學習分為兩個不同的類別:1.學習獨立於數據分析的pandas library2.
  • python數據分析常用庫之pandas入門(2)
    索引、選擇和賦值昨天介紹了pandas的模塊引入、創建和讀取數據,今天主要看看怎麼從數據結構中獲得想要的值,也就是數據的索引查找、
  • 懂Excel就能輕鬆入門Python數據分析包pandas(十五):拆分數據
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd轉發本文並私信我"python",即可經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • 如何系統地學習Python 中 matplotlib, numpy, scipy, pandas?
    總的來說,如果你想理解和處理手頭的數據,就用 Pandas;如果你想執行一些複雜的計算,就用 Numpy 和 SciPy;如果你想將數據可視化,就用 Matplotlib。這 4 個庫在 Python 生態體系中的地位也不一樣,相對來說 Numpy 最簡單,處於最底層。
  • Python 數據處理庫 pandas 入門教程
    本文是對它的一個入門教程。pandas提供了快速,靈活和富有表現力的數據結構,目的是使「關係」或「標記」數據的工作既簡單又直觀。它旨在成為在Python中進行實際數據分析的高級構建塊。入門介紹pandas適合於許多不同類型的數據,包括:由於這是一個Python語言的軟體包,因此需要你的機器上首先需要具備Python語言的環境。
  • pandas入門
    使用《利用python進行數據分析》(第二版)進行學習,僅需要學習資料的小夥伴可直接跳轉至文章最下方。
  • Python學習120課 pandas簡介kaggle下載數據及pandas讀取外部數據
    【每天幾分鐘,從零入門python編程的世界!】numpy的基本的東西我們學習差不多了,後面具體應用中遇到問題具體分析,然後去深入了解遇到的新的知識點就行。現在我們開始學習pandas,pandas一般用的更多,pandas是基於numpy去寫的。pandas是一個專門做數據結構和數據分析的庫。
  • Python數據核對系列之2—power query VS pandas
    我們從數據-新建查詢-從文件裡選擇從工作簿或者從csv。然後加載我們的源文件。在選擇csv文件加載的時候,有時候會因為原始數據的某個欄位裡包含換行符而導致加載完的數據會出現錯行問題,導致你的數據格式設置會報錯。這個問題的解決方案我們之前已經發過了,大家再遇到的話可以再查看一下。power query加載csv錯行?
  • Python數據分析:pandas讀取和寫入數據
    我的公眾號是關於自己在數據分析/挖掘學習過程中的一些技術和總結分享,文章會持續更新......繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。
  • 牛逼的Python書,你看過幾本?
    ,並在開頭就安排了一章快速入門,可以讓你對python一覽眾山小,從hello,world開始讓你很快就能寫出一段python的代碼。3.編寫高質量代碼:改善Python程序的91個建議當你的python寫了1-2年之後,一定渴望寫出傳說中的pythonic代碼,那是一種融入若python精髓的代碼風格。那你一定是需要閱讀這本書,裡面全是乾貨,非常實用,把一些python技巧都講的淋漓盡致。
  • 「Python替代Excel Vba」系列(三):pandas處理不規範數據
    帶你用pandas玩轉各種數據處理前言本系列前2篇已經稍微展示了 python 在數據處理方面的強大能力,這主要得益於 pandas 包的各種靈活處理方式。但是身經百戰的你肯定會覺得,前2篇例子中的數據太規範了,如果把數據導入到資料庫還是可以方便解決問題的。因此,本文將使用稍微複雜的數據做演示,充分說明 pandas 是如何靈活處理各種數據。
  • 6個提升效率的pandas小技巧
    pandas是python中常用的數據分析庫,出現頻率非常高,而且pandas功能之多讓人咋舌,即使pandas老手也沒法保證能高效使用pandas做數據分析。這篇文章目的梳理幾個高效實用的pandas小技巧,供大家參考。1.
  • python這些技能你get到了嗎?
    文章目標:希望讀者獲取Python中pandas常用知識點,能夠提升日常工作效率,如果有問題可以留言或者關注作者,後續會逐步介紹Python其他常用數據處理庫函數和技巧。python是人工智慧程式語言,無論現在的網絡爬蟲還是AI的運用種都非常廣泛,自人工智慧火了之後,python先後被浙江列入高考,南京開始把python印在小學課本上,國家也開始關注少兒編程,大力鼓勵孩子學習編程.數據處理作為機器學習中不可或缺的一環,是學習機器學習的入門必修課之一。
  • 自動生成pandas代碼,python數據處理神器
    熟悉我的同學都知道,我的大部分教程最終都希望教會你怎麼節省代碼。今天我要說的不是怎麼寫代碼,而是介紹一款我親手打造的小工具,它作為探索數據的工具,你不僅不需要寫任何的代碼,它最終還會自動生成pandas代碼。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十八):二分法查找
    此系列文章收錄在:數據大宇宙 > 數據處理 > E-pd轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • Python數據分析利器,Pandas入門介紹,幫你便捷高效處理複雜數據
    關於Python的數據分析,當我們遇到的數據量小、數據結構簡單時,可以通過字典、列表等Python常見的數據結構來處理。但是當我們面對的大量數據以及複雜數據的局面時,就需要用一些專門用於數據分析的擴展庫來處理數據了。今天給大家介紹一個Python裡專門用來做數據分析和處理的擴展庫。