Python 中对数据的排序问题(numpy , pandas)
来源:互联网 发布:mysql 查询总数和分页 编辑:程序博客网 时间:2024/05/22 03:02
数据分析过程中,经常遇到按指定的某一列或者某几列进行排序问题,下面分别介绍用 numpy 和 pandas 实现此功能的函数及方法
数据准备
import numpy as npfrom pandas import DataFramea=np.array([[1,0,6],[1,7,0],[2,4,0],[2,3,1]])print (a)[[1 0 6] [1 7 0] [2 4 0] [2 3 1]]
我们的目标是按第 3 列升序排序,在此基础上,在按第 1 列降序排序,即得到如下效果:
[[2, 4, 0], [1, 7, 0], [2, 3, 1], [1, 0, 6]]
numpy 实现
numpy 中的 numpy.argsort()
和 numpy.lexsort()
可以返回升序排序后的索引,不同的是numpy.lexsort()
可以接受多列,即可以进行子排序.
idex=np.lexsort([-1*a[:,0],a[:,2]])a_sort=a[idex,:]print (a_sort)[[2 4 0] [1 7 0] [2 3 1] [1 0 6]]
要注意的是 numpy.lexsort()
先按后面的参数进行排序
pandas 实现
用 pandas 实现相同的功能会更简单些:
df=DataFrame(a)a_sort=df.sort([2,0],ascending=[1,0])print (a_sort.values)[[2 4 0] [1 7 0] [2 3 1] [1 0 6]]
0 0
- Python 中对数据的排序问题(numpy , pandas)
- Python-Pandas 学习 数据中对时间的操作
- Numpy, Pandas, 及Python原生的排序方法
- Mac OSX python 安装pandas numpy scrapy的问题
- Python Pandas与Numpy中axis参数的二义性
- Python Pandas与Numpy中axis参数的二义性
- Python Pandas与Numpy中axis参数的二义性
- python中numpy和pandas学习
- python pandas中对Series数据进行轴向连接
- Numpy与Pandas排序
- 【python】numpy数组中按照特征值对特征向量进行排序
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- python+pandas+scipy+numpy
- 学习Python数据分析(1)----numpy,Pandas,matplotlib,scipy 的安装
- Python numpy数组排序问题
- Python中numpy的安装问题
- python/pandas/numpy数据分析(七)-MultiIndex
- python/pandas/numpy数据分析(十一)-相关系数与协方差
- Intersection of Two Linked Lists
- 黑马程序员-c语言链表-学生管理系统(Q)
- 平台设备与平台驱动注册过程platform_driver_register与platform_device_register
- percona-toolkit安装
- iOS学习笔记13-iOS 'The sandbox is not sync with the Podfile.lock'问题解决
- Python 中对数据的排序问题(numpy , pandas)
- C# 语法
- Knockoutjs快速入门(经典)
- hadoop资料收集
- KeyEvent 键码值
- Oracle 常用的循环小结
- View(基本控件)、添加竖线
- Git详解之一 Git起步
- DOM4J使用