在使用Python里的pandas库进行数据分析工作时,很多时候我们会需要对数据进行排序,这也是我们了解数据的常用做法之一。下面我们将介绍一下在Python中如何使用sort_value函数对数据进行排序。

函数及主要参数介绍:


sort_values


参数说明:

by: 可以填入字符串或者字符串组成的列表。也就是说,如果axis=0,那么by="列名";如果axis=1,那么by="行名"。

axis: {0 or ‘index’, 1 or ‘columns’}, default 0,意思就是如果axis=0,就按照索引排序,即纵向排序;如果axis=1,则按列排序,即横向排序。默认是axis=0

ascending: 输入布尔型,True是升序False是降序,也可以可以是[True,False],即第一个字段升序,第二个字段降序 。

inplace: 输入布尔型,是否用排序后的数据框替换现有的数据框(这个在之前的文章写过很多次了~)

kind: 排序的方法,{‘quicksort’, ‘mergesort’, ‘heapsort’},默认是使用‘quicksort’。这个参数用的比较少,大家可以试一试。

na_position : {‘first’, ‘last’},缺失值的排序,也就说决定将缺失值放在数据的最前面还是最后面。first是排在前面,last是排在后面,默认是用last

下面通过实例练习一下sort_value函数的用法:

首先还是创建数据表:


scores= pd.DataFrame([[87,56,85],[46,87,97],[34,65,86]],
     columns=['jack', 'rose', 'mike'])
scores


python列表根据某一列排序 python对某一列数据排序_升序


下面我们练习一下对‘rose’这一列进行降序排序:


df_sc=scores.sort_values(by='rose',ascending=False)
df_sc


python列表根据某一列排序 python对某一列数据排序_python列表根据某一列排序_02


再练习一下对‘mike’这一列进行升序排序:


df_sc=scores.sort_values(by='mike',ascending=True)
df_sc


python列表根据某一列排序 python对某一列数据排序_python sort函数_03


对第0行进行升序排序:


scores.sort_values(by=0,axis=1,ascending=True)


python列表根据某一列排序 python对某一列数据排序_datatable的数据进行组内排序_04


最后,我们再尝试对第1行进行升序,第0行进行降序:


scores.sort_values(by=[1,0],axis=1,ascending=[True,False]


python列表根据某一列排序 python对某一列数据排序_python列表根据某一列排序_05


可以看到,在输出的结果中,数据表的第0列并没有完全降序,这是因为在我们的sort_values使用中,由于我们是先指定对第1行进行升序处理的,因此程序会优先帮我们执行这一条件;而后在这一条件的前提下,再帮我们执行下面的排序命令。

在对数据进行排序之后,我们往往可以借助以下函数,更进一步地观察我们的数据:

data.head:

查看数据的前五行。

data.tail:

查看数据的后五行。

data.shape :

查看矩阵或数组的维数,或者是说数据表的结构(有几行几列)。

http://data.info:

查看数据的基本信息,如:数据类型、缺失值数量等。