您好,登錄后才能下訂單哦!
本篇內容主要講解“pandas怎么實現按照多列排序ascending”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“pandas怎么實現按照多列排序ascending”吧!
代碼示例:
import pandas as pd #讀取文件 df = pd.read_csv('./TianQi.csv') #字符串替換和類型轉換 df['最高溫度'] = df['最高溫度'].str.replace('℃','').astype('int32') df.loc[:,'最低溫度'] = df['最低溫度'].str.replace('℃','').astype('int32') #排序并獲取最高溫度前5名 print(df.sort_values(by='最高溫度',ascending=False).head()) ''' 打印: 日期 最高溫度 最低溫度 天氣 風向 風級 空氣質量 184 2019/7/4 38 25 晴~多云 西南風 2級 良 206 2019/7/26 37 27 晴 西南風 2級 良 142 2019/5/23 37 21 晴 東南風 2級 良 183 2019/7/3 36 24 晴 東南風 1級 良 204 2019/7/24 36 27 多云~雷陣雨 西南風 2級 良 ''' #按照多列排序 print(df.sort_values(by=['最高溫度','最低溫度'],ascending= True).head(10)) ''' 打印: 日期 最高溫度 最低溫度 天氣 風向 風級 空氣質量 363 2019/12/30 -5 -12 晴 西北風 4級 優 364 2019/12/31 -3 -10 晴 西北風 1級 優 42 2019/2/12 -3 -8 小雪~多云 東北風 2級 優 44 2019/2/14 -3 -6 小雪~多云 東南風 2級 良 14 2019/1/15 -2 -10 晴 西北風 3級 良 37 2019/2/7 -2 -7 多云 東北風 3級 優 38 2019/2/8 -1 -7 多云 西南風 2級 優 4 2019/1/5 0 -8 多云 東北風 2級 優 39 2019/2/9 0 -8 多云 東北風 2級 優 40 2019/2/10 0 -8 多云 東南風 1級 優 ''' print(df.sort_values(by=['最高溫度','最低溫度'],ascending= False).head(10)) ''' 打印: 日期 最高溫度 最低溫度 天氣 風向 風級 空氣質量 184 2019/7/4 38 25 晴~多云 西南風 2級 良 206 2019/7/26 37 27 晴 西南風 2級 良 142 2019/5/23 37 21 晴 東南風 2級 良 201 2019/7/21 36 27 晴~多云 西南風 2級 輕度污染 204 2019/7/24 36 27 多云~雷陣雨 西南風 2級 良 207 2019/7/27 36 27 多云 東南風 2級 輕度污染 174 2019/6/24 36 24 多云 東南風 2級 良 175 2019/6/25 36 24 多云 東南風 2級 良 183 2019/7/3 36 24 晴 東南風 1級 良 170 2019/6/20 36 23 多云~晴 東南風 2級 輕度污染 ''' print(df.sort_values(by=['最高溫度','最低溫度'],ascending= [True,False]).head(10)) ''' 打印: 日期 最高溫度 最低溫度 天氣 風向 風級 空氣質量 363 2019/12/30 -5 -12 晴 西北風 4級 優 44 2019/2/14 -3 -6 小雪~多云 東南風 2級 良 42 2019/2/12 -3 -8 小雪~多云 東北風 2級 優 364 2019/12/31 -3 -10 晴 西北風 1級 優 37 2019/2/7 -2 -7 多云 東北風 3級 優 14 2019/1/15 -2 -10 晴 西北風 3級 良 38 2019/2/8 -1 -7 多云 西南風 2級 優 4 2019/1/5 0 -8 多云 東北風 2級 優 39 2019/2/9 0 -8 多云 東北風 2級 優 40 2019/2/10 0 -8 多云 東南風 1級 優 '''
Series
s.sort_index(ascending=False)
對series的索引進行排序,默認升序
s.sort_values(ascending=False)
對series的值進行排序,對值進行排序的時候,無論是升序還是降序,缺失值(NaN)都會排在最后面
DataFrame:
dt.sort_index(ascending=False)#按列索引進行降序排序 dt.sort_inex(axis=1)#按行的索引進行排序 dt.sort_values(by='columns_name')#按指定列的值進行排序 dt.sort_values(by='row_name', axis=1)#按指定行的值進行排序
使用by參數進行某幾列(行)排序的時候,以列表中的第一個為準,可能后面的不會生效,因為有的時候無法做到既對第一行(列)進行升序排序又對第二行(列)進行排序。
在指定行值進行排序的時候,必須設置axis=1,不然會報錯,因為默認指定的是列索引,找不到這個索引所以報錯,axis=1的意思是指定行索引。
Series
s.rank(method=‘first')
對series的值進行升序排名,輸出為排名,當排名相同時,輸出平均排名,method=‘first’排名相同時按照值在數組中出現的順序排序
method參數除了,first按值在原始數據中的出現順序分配排名,還有min使用整個分組的最小排名,max是用整個分組的最大排名,average使用平均排名,也是默認的排名方式。還可以設置ascending參數,設置降序還是升序排序。
DataFrame:
dt.rank()#按列進行排名 dt.rank(axis=1)#按行進行排名
method與ascending參數的使用與Series的相同
到此,相信大家對“pandas怎么實現按照多列排序ascending”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。