日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

pandas實(shí)現(xiàn)按照多列排序-ascending_python

作者:書(shū)院二層樓 ? 更新時(shí)間: 2022-07-11 編程語(yǔ)言

pandas按照多列排序ascending

代碼示例:

import pandas as pd
 
#讀取文件
df = pd.read_csv('./TianQi.csv')
#字符串替換和類(lèi)型轉(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的相同

原文鏈接:https://blog.csdn.net/caoxinjian423/article/details/112979244

欄目分類(lèi)
最近更新