pandas中Series和DataFrame的rank方法解析
pandas中的Series和DataFrame的rank方法
rank是將Series或DataFrame的數(shù)據(jù)進(jìn)行排序類型的一種方法,不過它并不像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ù)自己的實(shí)際需要對這種排名的方式進(jìn)行調(diào)整,rank函數(shù)為我們提供了一個method參數(shù).

如上圖所示,設(shè)置為method為first時,對于相同的數(shù)據(jù),它會根據(jù)數(shù)據(jù)出現(xiàn)的順序進(jìn)行排序。
其他的method的取值及說明如下:

同時,我們可以讓rank的排名順序?yàn)槟嫘颍@是只需設(shè)置ascending = False即可,
示例如下:

上述全都是對于Series的操作,而對于DataFrame而言方法是一樣的,只是在DataFrame中,我們可以自己選擇是在行還是列上進(jìn)行計算,rank方法中有axis參數(shù),按需設(shè)置即可。
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python+Flask開發(fā)博客項(xiàng)目并實(shí)現(xiàn)內(nèi)網(wǎng)穿透
Flask是一個使用python編寫的輕量級Web框架,這篇文章我們將使用這個框架編寫一個屬于自己的博客網(wǎng)站!并教你如何通過使用內(nèi)網(wǎng)穿透工具處理項(xiàng)目,讓本地的項(xiàng)目可以在公網(wǎng)訪問,感興趣的可以了解一下2021-11-11
Python實(shí)現(xiàn)將MP4視頻分解為JPG圖片幀
視頻處理是Python的一大強(qiáng)項(xiàng),今天我們來聊聊如何用幾十行代碼,實(shí)現(xiàn)將MP4視頻自動分解為一張張JPG圖片,這個技能在視頻分析、數(shù)據(jù)集制作、精彩瞬間提取等場景非常實(shí)用,需要的朋友可以參考下2026-04-04
python?pyaudio音頻錄制的實(shí)現(xiàn)
這篇文章主要介紹了python?pyaudio音頻錄制的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
Python使用from?import導(dǎo)入模塊中的指定內(nèi)容
在編程的世界里,模塊化是構(gòu)建健壯應(yīng)用的核心原則之一,而from?import語句,正是讓這種高效導(dǎo)入變得優(yōu)雅的關(guān)鍵工具,今天,我們將深入探索from?import的方方面面,從基礎(chǔ)語法到高級技巧,需要的朋友可以參考下2026-06-06
基于Python實(shí)現(xiàn)加強(qiáng)版煙花
這篇文章主要為大家詳細(xì)介紹了如何利用Python制作一個加強(qiáng)版煙花景,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-02-02
Python實(shí)現(xiàn)多路視頻多窗口播放功能
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)多路視頻多窗口播放功能的相關(guān)知識,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02

