秒懂!圖解四個實用的pandas函數!

2021-01-11 CDA數據分析師

作者:Baijayanta Roy

來源:towardsdatascience

編譯&內容補充:早起Python

在用python進行機器學習或者日常的數據處理中,pandas是最常用的Python庫之一,熟練掌握pandas是每一個數據科學家的必備技能,本文將用代碼+圖片詳解Pandas中的四個實用函數!

shift()

假設我們有一組股票數據,需要對所有的行進行移動,或者獲得前一天的股價,又或是計算最近三天的平均股價。

面對這樣的需求我們可以選擇自己寫一個函數完成,但是使用pandas中的shift()可能是最好的選擇,它可以將數據按照指定方式進行移動!

下面我們用代碼進行演示,首先導入相關庫並創建示例DataFrame

import pandas as pdimport numpy as npdf = pd.DataFrame({'DATE': [1, 2, 3, 4, 5], 'VOLUME': [100, 200, 300,400,500], 'PRICE': [214, 234, 253,272,291]})

現在,當我們執行df.shift(1,fill_value=0)即可將數據往下移動一行,並用0填充空值

現在,如果我們需要將前一天的股價作為新的列,則可以使用下面的代碼

我們可以如下輕鬆地計算最近三天的平均股價,並創建一個新的列

向前移動數據也是很輕鬆的,使用-1即可

更多有關shift函數可以查閱官方文檔,總之在涉及到數據移動時,你需要想到shift!

value_counts()

pandas中的value_counts()用於統計dataframe或series中不同數或字符串出現的次數,並可以通過降序或升序對結果對象進行排序,下圖可以方便理解。

現在讓我們用代碼示例,首先是Index對象

下面是Series對象

同時可以對bin參數將結果劃分為區間

更多的細節與參數設置,可以閱讀pandas官方文檔。

mask()

pandas中的mask方法比較冷門,和np.where比較類似,將對cond條件進行判斷,如果cond為False,請保留原始值。如果為True,則用other中的相應值替換。

現在我們看下面的DataFrame,在這裡我們要更改所有可以被二整除的元素的符號,就可以使用mask

下面是代碼實現過程

nlargest()

在很多情況下,我們會遇到需要查找Series或DataFrame的前3名或後5名值的情況,例如,總得分最高的3名學生,或選舉中獲得的總票數的3名最低候選人

pandas中的nlargest()和nsmallest()是滿足此類數據處理要求的最佳答案,下面就是從10個觀測值中取最大的三個圖解

下面是代碼實現過程

但如果有相等的情況出現,那麼可以使用first,last,all來進行保留

了解了nlargest()的使用方法後,nsmallest()就顯得十分簡單,本文就不再贅述,如果還有疑問可以查閱官方文檔!

相關焦點

  • 高效的5個pandas函數,你都用過嗎?
    之前為大家介紹過10個高效的pandas函數,頗受歡迎,裡面的每一個函數都能幫我們在數據分析過程中節省時間。高效的10個Pandas函數,你都用過嗎?pandas還有很多讓人舒適的用法,這次再為大家介紹5個pandas函數,作為這個系列的第二篇。1. explodeexplode用於將一行數據展開成多行。
  • 20個Pandas函數詳解
    它提供了許多函數和方法來加快數據分析過程。pandas之所以如此普遍,是因為它具有強大的功能,以及他簡單的語法和靈活性。在這篇文章中,我將舉例來解釋20個常用的pandas函數。有些是很常見的,我敢肯定你以前用過。有些對你來說可能是新的。所有函數都將為你的數據分析過程增加價值。
  • 提高數據處理效率,一行代碼開啟Pandas四倍速!
    快來了解新庫Modin,可以分割pandas的計算量,提高數據處理效率,一行代碼即刻開啟Pandas四倍速。首先了解一些基礎知識:Pandas作為Python中用於處理數據的庫,能簡單且靈活地處理不同種類、大小的數據。除此之外,Pandas還有許多函數有助於輕鬆處理不同數據。
  • Pandas的函數應用及映射方法
    CDA數據分析師 出品在數據分析師日常的數據清洗工作中,經常需要對數據進行各種映射變換,通過Pandas可以非常方便地解決此問題,其提供了map()、apply()、mapapply()等方法,下面將一一詳細介紹這三個映射函數的用法及三者的區別。
  • 超全的pandas數據分析常用函數總結(下篇)
    上篇文章中,小編給大家總結了數據分析中pandas這一模塊裡面常用函數的四個部分的內容,分別為導入模塊、創建數據集並讀取、數據查看與數據清洗,現在給大家介紹下篇的內容。來源 | 凹凸數據5.數據提取下面這部分會比較繞:loc函數按標籤值進行提取,iloc按位置進行提取pandas.DataFrame.loc() 允許輸入的值:單個標籤,例如5或』a』,(請注意,5被解釋為索引的標籤,而不是沿索引的整數位置)。標籤列表或數組,例如。[『a』, 『b』, 『c』]具有標籤的切片對象,例如』a』:『f』,切片的開始和結束都包括在內。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十七):IF函數代替者
    後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandasnumpy.where 方法Excel 函數中有一個初學者都能馬上學會的函數——IF 函數,而在 pandas 中卻沒有對應效果的方法,這是因為 numpy 已經有了對應的實現—— where。他能根據條件(true 或者 false) 返回不同的值。
  • 在pandas中使用pipe()提升代碼可讀性
    簡介我們在利用pandas開展數據分析時,應儘量避免過於「碎片化」的組織代碼,尤其是創建出過多不必要的「中間變量」,既浪費了「內存」,又帶來了關於變量命名的麻煩,更不利於整體分析過程代碼的可讀性,因此以流水線方式組織代碼非常有必要。
  • pandas使用的25個技巧
    查詢pandas版本  如果你還想知道pandas所依賴的模塊的版本,你可以使用show_versions()函數:  上述三個函數的結果都一樣,可以更改列名使得列名中不含有空格:從DataFrame中篩選出數量最多的類別   假設你想要對movies這個DataFrame通過genre進行過濾,但是只需要前3個數量最多的genre。  我們對genre使用value_counts()函數,並將它保存成counts(type為Series):
  • 6個冷門但實用的pandas知識點
    作為開展數據分析的利器,蘊含了與數據處理相關的豐富多樣的API,使得我們可以靈活方便地對數據進行各種加工,但很多中的實用方法其實很多人都不熟悉,今天就來給大家介紹6個不太為人們所熟知的實用小技巧。
  • Pandas>>sample()函數 隨機選取若干行
    Pandas>>sample()函數 隨機選取若干行功能說明有時候我們只需要數據集中的一部分,並不需要全部的數據。這個時候我們就要對數據集進行隨機的抽樣。pandas中自帶有抽樣的方法。功能相似:numpy.random.choice函數名:DataFrame.sample(n=None,frac=None,replace=False,weights=None,random_state=None,axis=None)import pandas as pdimport numpy as npdata_test= pd.DataFrame
  • 懶人秘籍:教你如何避免編寫pandas代碼
    開始pandas遊戲之旅,請閱讀如下資源:5個鮮為人知的pandas技巧使用pandas進行探索性數據分析第二個例子的速度之快令人驚訝。正確的方法是使用pandas對數據進行求和(或對列使用任何其他操作),這是第三個示例——也是最快的!2.如何避免過濾數據
  • 6個提升效率的pandas小技巧
    pandas是python中常用的數據分析庫,出現頻率非常高,而且pandas功能之多讓人咋舌,即使pandas老手也沒法保證能高效使用pandas做數據分析。這篇文章目的梳理幾個高效實用的pandas小技巧,供大家參考。1.
  • python時間序列分析之_用pandas中的rolling函數計算時間窗口數據
    如下面的示意圖所示,其中時間序列數據代表的是15日每日的溫度,現在我們以3天為一個窗口,將這個窗口從左至右依次滑動,統計出3天的平均值作為這個點的值,比如3號的溫度就是1號、2號、3號的平均溫度,通過示意圖我們已經理解了滑動窗口,下面我們就看看pandas中使用的函數及各參數的含義。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(七):分列
    後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言今天從兩個需求來看看數據分列功能,由於 Excel 自帶功能比較弱,在處理稍微複雜的需求時會顯得力不從心,因此,本系列文章將引入 Excel 中一個非常高效的數據處理插件—— Power Query,並且看看 pandas 是怎樣靈活解決。
  • 使用Pandas的resample函數處理時間序列數據的技巧
    在本文中,我們將介紹一些使用Pandas resample()函數對時間序列數據進行重採樣的示例。 我們將介紹以下常見問題,並應幫助您開始使用時序數據操作。下採樣並執行聚合使用自定義基數進行下採樣上採樣和填充值一個實際的例子向下採樣和執行聚合下採樣是將一個時間序列數據集重新採樣到一個更大的時間框架。例如,從幾分鐘到幾小時,從幾天到幾年。
  • pandas指南:做更高效的數據科學家
    今天我要告訴你們的是:在數據科學中,有一個軟體包是你們絕對需要學習的,那就是pandas。而pandas真正有趣的地方是,很多其他的包也在裡面。pandas是一個核心包,因此它具有來自其他各種包的特性。pandas類似於Python中的Excel:它使用表(即DataFrame)並對數據進行轉換,但它還能做更多。
  • Pandas的介紹與基本使用
    如果說沒有pandas的出現,目前的金融數據分析領域還應該是R語言的天下。2、Pandas能幹什麼Pandas的主要功能:具備對應其功能的數據結構DataFrame,Series集成時間序列功能提供豐富的數學運算和操作靈活處理缺失數據.....以上就是pandas能完成的一些基礎操作,當然並不完全,下面就來看看pandas到底是怎麼用的。
  • 想讓pandas運行更快嗎?那就用Modin吧
    Modin 如何加速數據處理過程在筆記本上在具有 4 個 CPU 內核的現代筆記本上處理適用於該機器的數據幀時,Pandas 僅僅使用了 1 個 CPU 內核,而 Modin 則能夠使用全部 4 個內核。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十一):透視表
    後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節文章最後我隨手使用了 pandas 中的透視表操作,之後有些小夥伴詢問我相關的問題。正好 pandas 的 pivot_table 也是與 Excel 透視表對應。本文簡單教你入門使用 pandas 完成透視表功能。
  • 教程| pandas輕鬆入門 之 數據結構介紹 1
    pandas經常和其它工具一同使用,如數值計算工具NumPy和SciPy,分析庫statsmodels和scikit-learn,和數據可視化庫matplotlib。pandas是基於NumPy數組構建的,特別是基於數組的函數和不使用for循環的數據處理。雖然pandas採用了大量的NumPy編碼風格,但二者最大的不同是pandas是專門為處理表格和混雜數據設計的。