網(wǎng)站首頁(yè) 編程語(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
相關(guān)推薦
- 2022-10-15 script 標(biāo)簽 async 屬性
- 2022-02-17 URLError和HTTPError基礎(chǔ)用法
- 2022-06-02 Python導(dǎo)包模塊報(bào)錯(cuò)的問(wèn)題解決_python
- 2022-04-18 Taro中設(shè)置 tabbar上的徽章。
- 2022-04-23 Android如何使用ViewPager2實(shí)現(xiàn)頁(yè)面滑動(dòng)切換效果_Android
- 2023-04-01 Python使用pptx實(shí)現(xiàn)復(fù)制頁(yè)面到其他PPT中_python
- 2022-09-13 fastlane自動(dòng)化打包iOS?APP過(guò)程示例_IOS
- 2022-08-01 Qt實(shí)現(xiàn)簡(jiǎn)易毛玻璃效果的示例代碼_C 語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支