秒懂!圖解四個實用的Pandas函數(shù)!
在用Python進行機器學(xué)習(xí)或者日常的數(shù)據(jù)處理中,Pandas是最常用的Python庫之一,熟練掌握pandas是每一個數(shù)據(jù)科學(xué)家的必備技能,本文將用代碼+圖片詳解Pandas中的四個實用函數(shù)!
shift()
假設(shè)我們有一組股票數(shù)據(jù),需要對所有的行進行移動,或者獲得前一天的股價,又或是計算最近三天的平均股價。
面對這樣的需求我們可以選擇自己寫一個函數(shù)完成,但是使用pandas中的shift()可能是最好的選擇,它可以將數(shù)據(jù)按照指定方式進行移動!
下面我們用代碼進行演示,首先導(dǎo)入相關(guān)庫并創(chuàng)建示例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]})
現(xiàn)在,當(dāng)我們執(zhí)行df.shift(1,fill_value=0)即可將數(shù)據(jù)往下移動一行,并用0填充空值
現(xiàn)在,如果我們需要將前一天的股價作為新的列,則可以使用下面的代碼
我們可以如下輕松地計算最近三天的平均股價,并創(chuàng)建一個新的列
向前移動數(shù)據(jù)也是很輕松的,使用-1即可
更多有關(guān)shift函數(shù)可以查閱官方文檔,總之在涉及到數(shù)據(jù)移動時,你需要想到shift!
value_counts()
pandas中的value_counts()用于統(tǒng)計dataframe或series中不同數(shù)或字符串出現(xiàn)的次數(shù),并可以通過降序或升序?qū)Y(jié)果對象進行排序,下圖可以方便理解。
現(xiàn)在讓我們用代碼示例,首先是Index對象
下面是Series對象
同時可以對bin參數(shù)將結(jié)果劃分為區(qū)間
更多的細節(jié)與參數(shù)設(shè)置,可以閱讀pandas官方文檔。
mask()
pandas中的mask方法比較冷門,和np.where比較類似,將對cond條件進行判斷,如果cond為False,請保留原始值。如果為True,則用other中的相應(yīng)值替換。
現(xiàn)在我們看下面的DataFrame,在這里我們要更改所有可以被二整除的元素的符號,就可以使用mask
下面是代碼實現(xiàn)過程
nlargest()
在很多情況下,我們會遇到需要查找Series或DataFrame的前3名或后5名值的情況,例如,總得分最高的3名學(xué)生,或選舉中獲得的總票數(shù)的3名最低候選人
pandas中的nlargest()和nsmallest()是滿足此類數(shù)據(jù)處理要求的最佳答案,下面就是從10個觀測值中取最大的三個圖解
下面是代碼實現(xiàn)過程
但如果有相等的情況出現(xiàn),那么可以使用first,last,all來進行保留
了解了nlargest()的使用方法后,nsmallest()就顯得十分簡單,本文就不再贅述,如果還有疑問可以查閱官方文檔!