python pandas 中的排序sort_index()和sort_values()

1、sort_index()

      通俗点讲,就是根据index的值进行排序,如果是按行排序,可以认为是根据index的值排序,如果是按列排序,可以认为是根据columns的值进行排序。用法如下:

### 按索引排序,需要指定轴和方向,默认为列方向排序
unsorted_df.sort_index()#默认为index升序
unsorted_df.sort_index(ascending=False)#此时为index降序   
 
unsorted_df.sort_index(axis=1,ascending=True,inplace=False,na_position='last')
#此时为columns方向升序,inplace指明是否替代原df,na_position指明缺失值的位置('last','first')

unsorted_df.sort_index().sort_index(axis=1,ascending=True,inplace=False,na_position='last')
#index和colimns同时排序,可以直接粘在后面

2、sort_values()

      对dataframe按某一列的值进行排序,或者按某一行的值进行排序。具体的参数设置如下:

# 参数
DataFrame.sort_values(by,axis = 0,ascending = True,inplace = False,kind =' quicksort ',na_position ='last' )

#参数说明
by: str或str的列表,如果axis=0或axis='index',那么by='列名';如果axis=1或axis='columns',那么by='行名'

axis: {0或'index';1或'columns'} 默认为0,即纵向排序,如果为1,则为横向排序

ascending: 布尔型,默认为True,即升序

inplace: 布尔型,是否用排序后的数据代替现有数据

kind: 排序算法, {'quicksort','mergesort','heapsort'},默认'quicksort'

na_position: {'first','last'},默认'last' ,即将缺失值放在最后。

 总结:

        之前对于按行和按列一直都很难记,也就是axis=0或者axis=1这个。这个可以这样理解,axis=0表示行需要发生变动,需要排序,axis=1表示数据的列的位置要发生变动,这样好像就好记了。

参考资料:

1、Dataframe 排序(sort_index()和sort_values())

2、Python中pandas库的sort_index、set_index和reser_index的用法

 

你可能感兴趣的:(pandas)