秒懂!圖解四個實用的Pandas函數!
在用Python進行機器學習或者日常的數據處理中,Pandas是最常用的Python庫之一,熟練掌握pandas是每一個數據科學家的必備技能,本文將用代碼+圖片詳解Pandas中的四個實用函數!
shift()
假設我們有一組股票數據,需要對所有的行進行移動,或者獲得前一天的股價,又或是計算最近三天的平均股價。
面對這樣的需求我們可以選擇自己寫一個函數完成,但是使用pandas中的shift()可能是最好的選擇,它可以將數據按照指定方式進行移動!
下面我們用代碼進行演示,首先導入相關庫并創建示例DataFrame
- import pandas as pd
- import numpy as np
- df = 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()就顯得十分簡單,本文就不再贅述,如果還有疑問可以查閱官方文檔!