2. 排序
.sort_index()
方法的作用是根据label
排序(而不是对存放的数据排序)。DataFrame/Series.sort_index(axis=0, level=None, ascending=True, inplace=False,
kind='quicksort', na_position='last', sort_remaining=True)
axis
:指定沿着那个轴排序。如果为0/'index'
,则对沿着0轴,对行label
排序;如果为1/'columns'
,则沿着 1轴对列label
排序。level
:一个整数、label
、整数列表、label list
或者None
。对于多级索引,它指定在哪一级上排序。ascending
:一个布尔值,如果为True
,则升序排序;如果是False
,则降序排序。inplace
:一个布尔值,如果为True
,则原地修改。如果为False
,则返回排好序的新对象kind
:一个字符串,指定排序算法。可以为'quicksort'/'mergesort'/'heapsort'
。注意只有归并排序是稳定排序的na_position
:一个字符串,值为'first'/'last'
,指示:将NaN
排在最开始还是最末尾。sort_remaining
:一个布尔值。如果为True
,则当多级索引排序中,指定level
的索引排序完毕后,对剩下level
的索引也排序。
.sort_values()
方法的作用是根据元素值进行排序。DataFrame/Series.sort_values(by, axis=0, ascending=True, inplace=False,
kind='quicksort', na_position='last')
Series.sort_values(axis=0, ascending=True, inplace=False,
kind='quicksort', na_position='last')
by
:一个字符串或者字符串的列表,指定希望对那些label
对应的列或者行的元素进行排序。对于DataFrame
,必须指定该参数。而Series
不能指定该参数。如果是一个字符串列表,则排在前面的
label
的优先级较高。它指定了用于比较的字段
axis
:指定沿着那个轴排序。如果为0/'index'
,则沿着0轴排序(此时by
指定列label
,根据该列的各元素大小,重排列各行);如果为1/'columns'
,则沿着 1轴排序(此时by
指定行label
,根据该行的各元素大小,重排列各列)。ascending
:一个布尔值,如果为True
,则升序排序;如果是False
,则降序排序。inplace
:一个布尔值,如果为True
,则原地修改。如果为False
,则返回排好序的新对象kind
:一个字符串,指定排序算法。可以为'quicksort'/'mergesort'/'heapsort'
。注意只有归并排序是稳定排序的na_position
:一个字符串,值为'first'/'last'
,指示:将NaN
排在最开始还是最末尾。
DataFrame/Series.sortlevel(level=0, axis=0, ascending=True,
inplace=False, sort_remaining=True)
:根据单个level
中的label
对数据进行排列(稳定的)axis
:指定沿着那个轴排序。如果为0/'index'
,则沿着0轴排序 ;如果为1/'columns'
,则沿着 1轴排序level
:一个整数,指定多级索引的level
ascending
:一个布尔值,如果为True
,则升序排序;如果是False
,则降序排序。inplace
:一个布尔值,如果为True
,则原地修改。如果为False
,则返回排好序的新对象sort_remaining
:一个布尔值。如果为True
,则当多级索引排序中,指定level
的索引排序完毕后,对剩下level
的索引也排序。
.rank()
方法的作用是在指定轴上计算各数值的排,其中相同数值的排名是相同的。DataFrame/Series.rank(axis=0, method='average', numeric_only=None,
na_option='keep', ascending=True, pct=False)
axis
:指定沿着那个轴排名。如果为0/'index'
,则沿着行排名(对列排名);如果为1/'columns'
,则沿着列排名(对行排名)。method
:一个字符串,指定相同的一组数值的排名。假设数值v
一共有N
个。现在轮到对v
排序,设当前可用的排名为k
。'average'
:为各个等值平均分配排名,这N
个数的排名都是
'min'
:使用可用的最小的排名,这N
个数的排名都是k
'max'
:使用可用的最大的排名,这N
各数的排名都是k+N-1
'first
:根据元素数据中出现的顺序依次分配排名,即按照它们出现的顺序,其排名分别为k,k+1,...k+N-1
'dense
:类似于'min'
,但是排名并不会跳跃。即比v
大的下一个数值排名为k+1
,而不是k+N
numeric_only
:一个布尔值。如果为True
,则只对float/int/bool
数据排名。仅对DataFrame
有效na_option
:一个字符串,指定对NaN
的处理。可以为:'keep'
:保留NaN
在原位置'top'
:如果升序,则NaN
安排最大的排名'bottom'
:如果升序,则NaN
安排最小的排名
ascending
:一个布尔值,如果为True
,则升序排名;如果是False
,则降序排名。pct
:一个布尔值。如果为True
,则计算数据的百分位数,而不是排名。