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文件和目录操作方法大全(含实例)
Mar 12 Python
使用Python标准库中的wave模块绘制乐谱的简单教程
Mar 30 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 Python
Python3安装Pillow与PIL的方法
Apr 03 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
python验证码图片处理(二值化)
Nov 01 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 Python
Python实现简单得递归下降Parser
May 02 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加速 eAccelerator配置和使用指南
2009/06/05 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
pycharm 使用心得(二)设置字体大小
2014/06/05 Python
Python文件去除注释的方法
2015/05/25 Python
探究python中open函数的使用
2016/03/01 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
QML使用Python的函数过程解析
2019/09/26 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
中级会计职业生涯规划书
2014/03/01 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
文员岗位职责范本
2015/04/16 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
MySQL数据管理操作示例讲解
2022/12/24 MySQL