Python实现EXCEL表格的排序功能示例


Posted in Python onJune 25, 2019

EXCEL的数值排序功能还是挺强大的,升序、降序,尤其自定义排序,能够对多个字段进行排序工作。

那么,在Python大法中,有没有这样强大的排序功能呢?答案是有的,而且本人觉得Python的排序功能,一点不比EXCEL的差。

同样,我们依然用到的是强大的pandas这个三方库。我们先将numpy和pandas导入进来:

Python实现EXCEL表格的排序功能示例

接着构造一个今天要用到的DataFrame,我们用字典的形式来构造。

Python实现EXCEL表格的排序功能示例

都是随意构造的,内容别较真。我们先来个简单点的热热身,按照身高的降序来排列一下。

Python实现EXCEL表格的排序功能示例

我们用到的是df.sort_values()这个函数。第一个参数为by,传入你要排序的列的标签名即可,后面的ascending参数指示排序方法为升序还是降序,True为升序,False为降序。由于存在相同的身高,pandas会自动的比较两个相同身高所对应的index,按照index的升序来排列。

假如我有这样一个需求:先按照身高降序排序,若存在相同的身高,则再按照武力来降序排序,可以做到吗?

当然可以,我们只需要在by参数里传入列标签组成的列表即可。

Python实现EXCEL表格的排序功能示例

通过这个例子我们可以看到,by参数不但可以传入字符串,还可以传入字符串组成的列表,来实现对多个列进行排序。

接着,我的要求再高一点。身高我依然需要降序,但是武力我需要升序,可以吗?

我们直接上结果:

Python实现EXCEL表格的排序功能示例

跟by参数类似,我们只需要在ascending参数中也传入布尔值组成的列表就可以了,意思就是告诉pandas,这两列我各自需要的排序方式,就跟后面ascending参数里指定的一样。因此,这两个参数的列表内的元素个数需要是一致的,否则就会报错了,因为没法一一对应。

关于sort_values这个强大的排序函数就介绍到这了。除了这些参数之外,它还有inplace、kind和na_position等参数来应对不同的排序需求。可以参考官网文档进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python发送邮件实例
Jan 10 Python
Python实现的文本编辑器功能示例
Jun 30 Python
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
python筛选出两个文件中重复行的方法
May 31 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
如何使用Python 打印各种三角形
Jun 28 Python
在python中创建指定大小的多维数组方式
Nov 28 Python
python飞机大战pygame游戏之敌机出场实现方法详解
Dec 17 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
Python基于Tkinter编写crc校验工具
May 06 Python
Python基础知识之变量的详解
Apr 14 Python
python实现动态创建类的方法分析
Jun 25 #Python
python pandas写入excel文件的方法示例
Jun 25 #Python
python多线程http压力测试脚本
Jun 25 #Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 #Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 #Python
如何使用Python标准库进行性能测试
Jun 25 #Python
python绘制评估优化算法性能的测试函数
Jun 25 #Python
You might like
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
使用python分析git log日志示例
2014/02/27 Python
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
python爬虫容易学吗
2020/06/02 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
Java的基础面试题附答案
2016/01/10 面试题
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
什么样的创业计划书可行性高?
2014/02/01 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
运动会100米广播稿
2015/08/19 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL