關(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: 如何對(duì)具有相同價(jià)值(即領(lǐng)帶)的記錄組進(jìn)行排序:
- numeric_only: 對(duì)于DataFrame對(duì)象,如果設(shè)置為True,則只對(duì)數(shù)字列排序。
- na_option: 如何對(duì)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)文章
Windows上配置Emacs來開發(fā)Python及用Python擴(kuò)展Emacs
這篇文章主要介紹了Windows上配置Emacs來開發(fā)Python及用Python擴(kuò)展Emacs的方法,Emacs與Vim并稱為開發(fā)者手中最強(qiáng)大的兩款文本編輯器,需要的朋友可以參考下2015-11-11Python 提取dict轉(zhuǎn)換為xml/json/table并輸出的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python 提取dict轉(zhuǎn)換為xml/json/table并輸出的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-08-08Python 實(shí)現(xiàn)一個(gè)計(jì)時(shí)器
這篇文章主要介紹了Python 實(shí)現(xiàn)一個(gè)計(jì)時(shí)器的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07聯(lián)邦學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)FedAvg算法實(shí)現(xiàn)
這篇文章主要為大家介紹了聯(lián)邦學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)FedAvg算法實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05python 利用Pyinstaller打包Web項(xiàng)目
這篇文章主要介紹了python 利用Pyinstaller打包Web項(xiàng)目,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-10-10利用python實(shí)現(xiàn)全屏愛心雨向喜歡的人表白
馬上520了,教大家用Python做一個(gè)下愛心雨的特效,這篇文章主要給大家介紹了關(guān)于利用python實(shí)現(xiàn)全屏愛心雨向喜歡的人表白的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05pyqt5教程QGraphicsScene及QGraphicsView使用基礎(chǔ)
這篇文章主要為大家介紹了pyqt5教程中QGraphicsScene及QGraphicsView使用基礎(chǔ),有序要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10