關(guān)于dataframe排序 pd.rank()
pandas.DataFrame.rank
DataFrame.rank(axis=0, method=‘a(chǎn)verage', numeric_only=NoDefault.no_default, na_option=‘keep', ascending=True, pct=False)
參數(shù)解釋
- axis: axis=0為按行排名,axis=1為按列排名
- method: 如何對具有相同價(jià)值(即領(lǐng)帶)的記錄組進(jìn)行排序:
- numeric_only: 對于DataFrame對象,如果設(shè)置為True,則只對數(shù)字列排序。
- na_option: 如何對NaN值進(jìn)行排序:
- ascending: 元素按升序/降序排列
- pct: 是否以百分比形式顯示返回的排名。
Example:
df = pd.DataFrame(data={'Animal': ['cat', 'penguin', 'dog',
'spider', 'snake'],
'Number_legs': [4, 2, 4, 8, np.nan]})
method: {‘a(chǎn)verage', ‘min', ‘max', ‘first', ‘dense'}, default ‘a(chǎn)verage'- average: 組里的平均排名
- min: 組里的最低排名
- max: 組里的最高排名
- first: 按照他們在數(shù)組中出現(xiàn)的順序排列
- dense: 就像’ min '一樣,但是在組之間rank總是增加1。
df['method_average'] = df['Number_legs'].rank(method='average') df['method_min'] = df['Number_legs'].rank(method='min') df['method_max'] = df['Number_legs'].rank(method='max') df['method_first'] = df['Number_legs'].rank(method='first') df['method_dense'] = df['Number_legs'].rank(method='dense')

na_option: {‘keep', ‘top', ‘bottom'}, default ‘keep'- keep: 空值排序仍為空值
- top: 排序放在第一位
- bottom: 排在最后一位
df['na_keep'] = df['Number_legs'].rank(na_option='keep') df['na_top'] = df['Number_legs'].rank(na_option='top') df['na_bottom'] = df['Number_legs'].rank(na_option='bottom')

ascending: 升序?yàn)門rue, 降序?yàn)镕alse
df['asc_True'] = df['Number_legs'].rank(method='min', ascending=True) df['asc_False'] = df['Number_legs'].rank(method='min', ascending=False)

pct: 是否顯示百分比
df['pct_True'] = df['Number_legs'].rank(method='min', pct=True) df['pct_False'] = df['Number_legs'].rank(method='min', pct=False)

分組排序
pandas.core.groupby.GroupBy.rank 官方文檔
Example:
df = pd.DataFrame(
{"group": ["a", "a", "a", "a", "a", "b", "b", "b", "b", "b"],
"value": [2, 4, 2, 3, 5, 1, 2, 4, 1, 5],}
)
for method in ['average', 'min', 'max', 'dense', 'first']:
df[f'{method}_rank'] = df.groupby('group')['value'].rank(method)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python用opencv完成圖像分割并進(jìn)行目標(biāo)物的提取
這篇文章主要介紹了python用opencv完成圖像分割并進(jìn)行目標(biāo)物的提取,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Jupyter notebook 不自動(dòng)彈出網(wǎng)頁的解決方案
這篇文章主要介紹了Jupyter notebook 不自動(dòng)彈出網(wǎng)頁的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
使用Pytorch導(dǎo)出自定義ONNX算子的示例代碼
這篇文章主要介紹了使用Pytorch導(dǎo)出自定義ONNX算子的示例代碼,下面給出個(gè)具體應(yīng)用中的示例:需要導(dǎo)出pytorch的affine_grid算子,但在pytorch的2.0.1版本中又無法正常導(dǎo)出該算子,故可通過如下自定義算子代碼導(dǎo)出,需要的朋友可以參考下2024-03-03
Python利用openpyxl操作Excel表格的完整指南
存測試數(shù)據(jù)有時(shí)候有大批量的數(shù)據(jù),存到TXT文件里面顯然不是最佳的方式,我們可以存到Excel里面去,下面我們就來看看如何使用Python自動(dòng)化操作Excel表格吧2026-03-03
關(guān)于yolov8訓(xùn)練的一些改動(dòng)及注意事項(xiàng)
Yolo是一種目標(biāo)檢測算法,目標(biāo)檢測的任務(wù)是從圖片中找出物體并給出其類別和位置,這篇文章主要給大家介紹了關(guān)于yolov8訓(xùn)練的一些改動(dòng)及注意事項(xiàng),文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
基于Python實(shí)現(xiàn)高效PPT轉(zhuǎn)圖片工具
在日常工作中,PPT是我們常用的演示工具,但有時(shí)候我們需要將PPT的內(nèi)容提取為圖片格式以便于展示或保存,所以本文將用Python實(shí)現(xiàn)PPT轉(zhuǎn)PNG工具,希望對大家有所幫助2025-04-04
Python實(shí)現(xiàn)在線批量美顏功能過程解析
這篇文章主要介紹了Python實(shí)現(xiàn)在線批量美顏功能過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

