在使用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
下面我们练习一下对‘rose’这一列进行降序排序:
df_sc=scores.sort_values(by='rose',ascending=False)
df_sc
再练习一下对‘mike’这一列进行升序排序:
df_sc=scores.sort_values(by='mike',ascending=True)
df_sc
对第0行进行升序排序:
scores.sort_values(by=0,axis=1,ascending=True)
最后,我们再尝试对第1行进行升序,第0行进行降序:
scores.sort_values(by=[1,0],axis=1,ascending=[True,False]
可以看到,在输出的结果中,数据表的第0列并没有完全降序,这是因为在我们的sort_values使用中,由于我们是先指定对第1行进行升序处理的,因此程序会优先帮我们执行这一条件;而后在这一条件的前提下,再帮我们执行下面的排序命令。
在对数据进行排序之后,我们往往可以借助以下函数,更进一步地观察我们的数据:
data.head:
查看数据的前五行。
data.tail:
查看数据的后五行。
data.shape :
查看矩阵或数组的维数,或者是说数据表的结构(有几行几列)。
http://data.info:
查看数据的基本信息,如:数据类型、缺失值数量等。