pandas實(shí)現(xiàn)按照多列排序-ascending
pandas按照多列排序ascending
代碼示例:
import pandas as pd #讀取文件 df = pd.read_csv('./TianQi.csv') #字符串替換和類型轉(zhuǎn)換 df['最高溫度'] = df['最高溫度'].str.replace('℃','').astype('int32') df.loc[:,'最低溫度'] = df['最低溫度'].str.replace('℃','').astype('int32') #排序并獲取最高溫度前5名 print(df.sort_values(by='最高溫度',ascending=False).head()) ''' 打?。? 日期 最高溫度 最低溫度 天氣 風(fēng)向 風(fēng)級(jí) 空氣質(zhì)量 184 2019/7/4 38 25 晴~多云 西南風(fēng) 2級(jí) 良 206 2019/7/26 37 27 晴 西南風(fēng) 2級(jí) 良 142 2019/5/23 37 21 晴 東南風(fēng) 2級(jí) 良 183 2019/7/3 36 24 晴 東南風(fēng) 1級(jí) 良 204 2019/7/24 36 27 多云~雷陣雨 西南風(fēng) 2級(jí) 良 ''' #按照多列排序 print(df.sort_values(by=['最高溫度','最低溫度'],ascending= True).head(10)) ''' 打?。? 日期 最高溫度 最低溫度 天氣 風(fēng)向 風(fēng)級(jí) 空氣質(zhì)量 363 2019/12/30 -5 -12 晴 西北風(fēng) 4級(jí) 優(yōu) 364 2019/12/31 -3 -10 晴 西北風(fēng) 1級(jí) 優(yōu) 42 2019/2/12 -3 -8 小雪~多云 東北風(fēng) 2級(jí) 優(yōu) 44 2019/2/14 -3 -6 小雪~多云 東南風(fēng) 2級(jí) 良 14 2019/1/15 -2 -10 晴 西北風(fēng) 3級(jí) 良 37 2019/2/7 -2 -7 多云 東北風(fēng) 3級(jí) 優(yōu) 38 2019/2/8 -1 -7 多云 西南風(fēng) 2級(jí) 優(yōu) 4 2019/1/5 0 -8 多云 東北風(fēng) 2級(jí) 優(yōu) 39 2019/2/9 0 -8 多云 東北風(fēng) 2級(jí) 優(yōu) 40 2019/2/10 0 -8 多云 東南風(fēng) 1級(jí) 優(yōu) ''' print(df.sort_values(by=['最高溫度','最低溫度'],ascending= False).head(10)) ''' 打?。? 日期 最高溫度 最低溫度 天氣 風(fēng)向 風(fēng)級(jí) 空氣質(zhì)量 184 2019/7/4 38 25 晴~多云 西南風(fēng) 2級(jí) 良 206 2019/7/26 37 27 晴 西南風(fēng) 2級(jí) 良 142 2019/5/23 37 21 晴 東南風(fēng) 2級(jí) 良 201 2019/7/21 36 27 晴~多云 西南風(fēng) 2級(jí) 輕度污染 204 2019/7/24 36 27 多云~雷陣雨 西南風(fēng) 2級(jí) 良 207 2019/7/27 36 27 多云 東南風(fēng) 2級(jí) 輕度污染 174 2019/6/24 36 24 多云 東南風(fēng) 2級(jí) 良 175 2019/6/25 36 24 多云 東南風(fēng) 2級(jí) 良 183 2019/7/3 36 24 晴 東南風(fēng) 1級(jí) 良 170 2019/6/20 36 23 多云~晴 東南風(fēng) 2級(jí) 輕度污染 ''' print(df.sort_values(by=['最高溫度','最低溫度'],ascending= [True,False]).head(10)) ''' 打?。? 日期 最高溫度 最低溫度 天氣 風(fēng)向 風(fēng)級(jí) 空氣質(zhì)量 363 2019/12/30 -5 -12 晴 西北風(fēng) 4級(jí) 優(yōu) 44 2019/2/14 -3 -6 小雪~多云 東南風(fēng) 2級(jí) 良 42 2019/2/12 -3 -8 小雪~多云 東北風(fēng) 2級(jí) 優(yōu) 364 2019/12/31 -3 -10 晴 西北風(fēng) 1級(jí) 優(yōu) 37 2019/2/7 -2 -7 多云 東北風(fēng) 3級(jí) 優(yōu) 14 2019/1/15 -2 -10 晴 西北風(fēng) 3級(jí) 良 38 2019/2/8 -1 -7 多云 西南風(fēng) 2級(jí) 優(yōu) 4 2019/1/5 0 -8 多云 東北風(fēng) 2級(jí) 優(yōu) 39 2019/2/9 0 -8 多云 東北風(fēng) 2級(jí) 優(yōu) 40 2019/2/10 0 -8 多云 東南風(fēng) 1級(jí) 優(yōu) '''
pandas排序、排名函數(shù)的使用
排序
Series
s.sort_index(ascending=False)
對(duì)series的索引進(jìn)行排序,默認(rèn)升序
s.sort_values(ascending=False)
對(duì)series的值進(jìn)行排序,對(duì)值進(jìn)行排序的時(shí)候,無(wú)論是升序還是降序,缺失值(NaN)都會(huì)排在最后面
DataFrame:
dt.sort_index(ascending=False)#按列索引進(jìn)行降序排序 dt.sort_inex(axis=1)#按行的索引進(jìn)行排序 dt.sort_values(by='columns_name')#按指定列的值進(jìn)行排序 dt.sort_values(by='row_name', axis=1)#按指定行的值進(jìn)行排序
使用by參數(shù)進(jìn)行某幾列(行)排序的時(shí)候,以列表中的第一個(gè)為準(zhǔn),可能后面的不會(huì)生效,因?yàn)橛械臅r(shí)候無(wú)法做到既對(duì)第一行(列)進(jìn)行升序排序又對(duì)第二行(列)進(jìn)行排序。
在指定行值進(jìn)行排序的時(shí)候,必須設(shè)置axis=1,不然會(huì)報(bào)錯(cuò),因?yàn)槟J(rèn)指定的是列索引,找不到這個(gè)索引所以報(bào)錯(cuò),axis=1的意思是指定行索引。
排名
Series
s.rank(method=‘first')
對(duì)series的值進(jìn)行升序排名,輸出為排名,當(dāng)排名相同時(shí),輸出平均排名,method=‘first’排名相同時(shí)按照值在數(shù)組中出現(xiàn)的順序排序
method參數(shù)除了,first按值在原始數(shù)據(jù)中的出現(xiàn)順序分配排名,還有min使用整個(gè)分組的最小排名,max是用整個(gè)分組的最大排名,average使用平均排名,也是默認(rèn)的排名方式。還可以設(shè)置ascending參數(shù),設(shè)置降序還是升序排序。
DataFrame:
dt.rank()#按列進(jìn)行排名 dt.rank(axis=1)#按行進(jìn)行排名
method與ascending參數(shù)的使用與Series的相同
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python神經(jīng)網(wǎng)絡(luò)TensorFlow簡(jiǎn)介常用基本操作教程
這篇文章主要介紹了python神經(jīng)網(wǎng)絡(luò)入門TensorFlow簡(jiǎn)介常用基本操作教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11python防止程序超時(shí)的實(shí)現(xiàn)示例
因?yàn)槟硞€(gè)需求,需要在程序運(yùn)行的時(shí)候防止超時(shí),本文主要介紹了python防止程序超時(shí)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08python基于gevent實(shí)現(xiàn)并發(fā)下載器代碼實(shí)例
這篇文章主要介紹了python基于gevent實(shí)現(xiàn)并發(fā)下載器代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11python中p-value的實(shí)現(xiàn)方式
今天小編就為大家分享一篇python中p-value的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12創(chuàng)建Python Docker鏡像的詳細(xì)步驟
Python和Docker是兩個(gè)極其流行的技術(shù),結(jié)合它們可以創(chuàng)建強(qiáng)大的應(yīng)用程序,Docker允許將應(yīng)用程序及其依賴項(xiàng)打包到一個(gè)獨(dú)立的容器中,而Python則提供了豐富的庫(kù)和工具來(lái)開發(fā)應(yīng)用程序,本文將提供如何創(chuàng)建Python Docker鏡像的全面指南,,需要的朋友可以參考下2023-12-12pandas分組排序 如何獲取第二大的數(shù)據(jù)
這篇文章主要介紹了pandas分組排序 獲取第二大的數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03python 爬取古詩(shī)文存入mysql數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了python 爬取古詩(shī)文存入mysql數(shù)據(jù)庫(kù)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01