pandas怎样实现一列和多列的数值排序?
Admin 2021-09-14 群英技术资讯 1903 次浏览
今天我们来了解一下关于pandas数值排序的内容,对于筛选和排序是Excel中使用频率最多的功能,下面我们就来看看pandas怎样实现一列和多列的数值排序,感兴趣的朋友就继续往下看吧。
本文用到的表格内容如下:

排序前先来看一下原始情形:
import pandas as pd df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx') print(df)
result:
姓名 年龄 成绩
0 小明 23.0 78
1 小刚 NaN 89
2 小红 876.0 65
3 李华 65.0 89
4 小美 NaN 43
5 张三 34.0 90
6 李四 NaN 34
7 王五 98.5 87
按照某一列数值进行排序就是整个数据表都要以某一列为准,进行升序或降序
排序需要用到sort_values()方法,在sort_values()方法中要通过by参数指明要排序的列名,通过ascending参数知名升序还是降序。
该方法默认升序排列(即ascending参数的默认值是True),使用by参数用来指定需要排序的列名
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx') print(df.sort_values(by=["成绩"]))
result:
姓名 年龄 成绩
6 李四 NaN 34
4 小美 NaN 43
2 小红 876.0 65
0 小明 23.0 78
7 王五 98.5 87
1 小刚 NaN 89
3 李华 65.0 89
5 张三 34.0 90
只要设置ascending参数的值为False,即可实现降序排列
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx') print(df.sort_values(by=["成绩"], ascending=False))
result:
姓名 年龄 成绩
5 张三 34.0 90
1 小刚 NaN 89
3 李华 65.0 89
7 王五 98.5 87
0 小明 23.0 78
2 小红 876.0 65
4 小美 NaN 43
6 李四 NaN 34
当待排序的列中有缺失值时,可以通过设置na_position参数对缺失值的显示位置进行设置
该方法默认缺失值显示在最后(na_position参数的默认值是last)
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx') print(df.sort_values(by=["成绩"])) df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx') print(df.sort_values(by=["年龄"]))
result:
姓名 年龄 成绩
0 小明 23.0 78
5 张三 34.0 90
3 李华 65.0 89
7 王五 98.5 87
2 小红 876.0 65
1 小刚 NaN 89
4 小美 NaN 43
6 李四 NaN 34
只要设置na_position参数的值为first,即可实现缺失值显示在最前面
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx') print(df.sort_values(by=["年龄"], na_position='first'))
result:
姓名 年龄 成绩
1 小刚 NaN 89
4 小美 NaN 43
6 李四 NaN 34
0 小明 23.0 78
5 张三 34.0 90
3 李华 65.0 89
7 王五 98.5 87
2 小红 876.0 65
按照多列数值排序是指同时依据多列数据进行升序、降序排列。当第一列出现重复值时按照第二列进行排序,第二列出现重复值时按照第三列进行排序,依次类推。
此时在sort_values()方法中需要排序的多个列名要以列表的形式传递给by参数,需要每个排序的列名所对应的排序方式也要以列表的形式传递给ascending参数,二者的列表要一一对应。
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx') print(df.sort_values(by=["成绩", "年龄"], ascending=[True, False]))
result:
姓名 年龄 成绩
6 李四 NaN 34
4 小美 NaN 43
2 小红 876.0 65
0 小明 23.0 78
7 王五 98.5 87
3 李华 65.0 89
1 小刚 NaN 89
5 张三 34.0 90
此时按照成绩进行升序排列,当成绩相同时再按照年龄进行降序排列。
关于pandas实现一列和多列的数值排序就介绍到这,上述代码仅供参考,希望大家阅读完这篇有收获,想要了解更多pandas数值排序的内容,大家可以关注群英网络其它相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
python怎么实现合并列表?有些新手对于python合并列表不是很清楚,对此小编整理了一些python合并列表的方法,具有一定的借鉴价值,需要的朋友可以参考学习,下面我们就一起来看看吧。
甘特图已经发展成项目规划和跟踪的必备工具,本文主要介绍了Python使用Matplotlib绘制甘特图的实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
sqlite的官网 sqlite.org/index.html SQLite 作为一个SQL数据库引擎,是由C语言实现的,又小又快,具有高可靠性且功能齐全。 作为嵌入式数据库,在移动设备中使用非常广泛且方便。本文讲解如何使用python操作sqlite数据库
这篇文章主要为大家详细介绍了Python函数实现学员管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了python调用stitcher类自动实现多个图像拼接融合功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008