pandas中Series和DataFrame的rank方法解析
pandas中的Series和DataFrame的rank方法
rank是將Series或DataFrame的數(shù)據(jù)進行排序類型的一種方法,不過它并不像sort(含sort_index、sort_values等)那樣返回的是排序后的數(shù)據(jù),而是當(dāng)前數(shù)據(jù)的排名。
上述很好理解,但是往往可以看到一句話:
默認(rèn)情況下,rank是通過“為各組分配一個平均排名”的方式破壞平級關(guān)系的
剛接觸這個方法可能很難理解這句話
那么看下面的例子:
是不是仍然很難理解,為什么rank會有小數(shù)?
這時候請再回味一下上面那句話,為各組分配一個平均排名。
什么意思呢
我們可以自己先拍一下一些沒用爭議的數(shù)字,比如-5最小,其排名為1.0,0其次,因此其排名為2.0,數(shù)字2同理,其排名為3.0,這些都沒問題,但是到了4的時候,我們發(fā)現(xiàn)Series中存在兩個4,那么根據(jù)不同的規(guī)則,我們可以說數(shù)字4的排名是4.0,但也可以說是5.0,而“為各組分配一個平均排名”就能很好的解釋這個4.5的來源了,即取4.0和5.0的平均值,那么對于數(shù)字7來說,也是一個道理了,其既可以取6.0,也可以取7.0,這里平均一下,就成了6.5了。
當(dāng)然上述全都是默認(rèn)情況下的排名方式,我們可以根據(jù)自己的實際需要對這種排名的方式進行調(diào)整,rank函數(shù)為我們提供了一個method參數(shù).
如上圖所示,設(shè)置為method為first時,對于相同的數(shù)據(jù),它會根據(jù)數(shù)據(jù)出現(xiàn)的順序進行排序。
其他的method的取值及說明如下:
同時,我們可以讓rank的排名順序為逆序,這是只需設(shè)置ascending = False即可,
示例如下:
上述全都是對于Series的操作,而對于DataFrame而言方法是一樣的,只是在DataFrame中,我們可以自己選擇是在行還是列上進行計算,rank方法中有axis參數(shù),按需設(shè)置即可。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python 經(jīng)典算法100及解析(小結(jié))
這篇文章主要介紹了Python 經(jīng)典算法100及解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09基于opencv和pillow實現(xiàn)人臉識別系統(tǒng)(附demo)
人臉識別就是一個程序能識別給定圖像或視頻中的人臉,本文主要介紹了opencv和pillow實現(xiàn)人臉識別系統(tǒng),本文不涉及分類器、訓(xùn)練識別器等算法原理,感興趣的可以了解一下2021-11-11Python pypinyin注音庫輕松絲滑實現(xiàn)漢字轉(zhuǎn)換成拼音
pypinyin 庫,能像功夫熊貓那樣,輕松、快捷地幫你把漢字轉(zhuǎn)換成拼音,有了 pypinyin,不僅可以節(jié)省寶貴的時間,還可以更準(zhǔn)確地展示中文字符的讀音,使文化交流更為順暢,本文帶大家一起探索 pypinyin 庫的魅力2024-01-01