pandas如何实现多列排序,代码是什么
Admin 2022-08-31 群英技术资讯 768 次浏览
这篇文章将为大家详细讲解有关“pandas如何实现多列排序,代码是什么”的知识,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码示例:
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的相同
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
用Python怎样实现定时任务?有些需求需要我们每隔一段时间就要执行一段程序,或者是往复循环执行某一个任务,那么这要怎样实现呢?下面小编就给大家介绍一下用python 实现定时任务的四个办法,感兴趣的朋友就往下看吧。
文件操作是我们开发中必不可少的一项需求。本文主要给大家介绍了关于Python常见的一些文件操作,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
本文主要介绍了Python中collections.Counter()的具体使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了python sklearn 画出决策树并保存为PDF的实现过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要为大家介绍了python根据照片获取地理位置及泄露防御,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008