Pandas 排序,本章介绍几种Pandas
常用的排序方式,它们分别是:按标签排序(行排序和列排序),按值排序。用permutation()
函数创建一个顺序随机的整数数组,我们按照这个数组元素的顺序为DataFrame对象进行行排序,对DataFrame对象的所有行应用take()函数,把新的次序传给它。
本章介绍了Pandas
排序方法,极客教程NumPy 排序函数介绍了NumPy 提供的多种排序方式供读者参考。
下面来看看一个输出的例子:
执行上面示例代码,得到以下结果:
在unsorted_df
数据值中,标签和值未排序,下面来看看如何按标签来排序。
按标签排序
使用sort_index()
方法,通过传递axis
参数和排序顺序,可以对DataFrame
进行排序。 默认情况下,按照升序对行标签进行排序。
执行上面示例代码,得到以下结果:
按行排序
通过将布尔值传递给升序参数,可以控制排序顺序。 来看看下面的例子来理解一下。
执行上面示例代码,得到以下结果:
按列排序
通过传递axis
参数值为0
或1
,可以对列标签进行排序。 默认情况下,axis = 0
,逐行排列。来看看下面的例子来理解这个概念。
执行上面示例代码,得到以下结果:
按值排序
像索引排序一样,sort_values()
是按值排序的方法。它接受一个by
参数,它将使用要与其排序值的DataFrame
的列名称。
执行上面示例代码,得到以下结果:
注意: 观察上面的输出结果,
col1
值被排序,相应的col2
值和行索引将随col1
一起改变。因此,它们看起来没有排序。
通过by
参数指定需要列值,参考以下示例代码:
执行上面示例代码,得到以下结果:
排序算法
sort_values()
提供了从mergeesort
,heapsort
和quicksort
中选择算法的一个配置。Mergesort
是唯一稳定的算法。参考以下示例代码:
执行上面示例代码,得到以下结果:
take() 函数
用numpy.ramdom.permutation()
函数,调用Series对象或DataFrame对象各行的顺序(随机排序)很简单,如下所示,创建一个元素为整数且按照升序排列的DataFrame对象。
输出结果如下:
用permutation()
函数创建一个包含0-4(顺序随机)这五各整数的数组,我们按照这个数组元素的顺序为DataFrame对象进行行排序,对DataFrame对象的所有行应用take()函数,把新的次序传给它。如下所示:
输出结果如下:
如上所示,DataFrame对象各行的位置发生改变,新索引的顺序跟new_order
数组的元素顺序保持一致。你甚至可以只对DataFrame对象的一部分进行排序操作。它将生成一个数组,只包含特定索引范围的数据,如下所示:
输出结果如下:
更多 pandas相关知识,请参考:
Pandas GroupBy 用法
Pandas 读写json
Pandas 数据处理
Pandas 数据读写