要对行或列索引进行排序(字典排序),可以使用sort_index方法,它将返回一个已排序的新对象

obj = Series(range(4), index=['d', 'a', 'b', 'c'])
obj.sort_index()

对于DataFrame,可以根据任意一个轴上的索引进行排序

frame = DataFrame(np.arange(8).reshape((2, 4)), index=['three', 'one'],
                  columns=['d', 'a', 'b', 'c'])
frame.sort_index()

    d    a    b    c
one    4    5    6    7
three    0    1    2    3

按列排序

frame.sort_index(axis=1)

    a    b    c    d
three    1    2    3    0
one    5    6    7    4

数据默认是升序排序,可以设置为降序排序

frame.sort_index(axis=1, ascending=False)

若要对Series进行排序,可以使用order方法

obj = Series([4, 7, -3, 2])
obj.order()

在排序时,任何缺失值默认都放到Series的末尾

obj = Series([4, np.nan, 7, np.nan, -3, 2])
obj.order()

4   -3.0
5    2.0
0    4.0
2    7.0
1    NaN
3    NaN
dtype: float64

在DataFrame上,对一个或多个列中的值进行排序

frame = DataFrame({'b': [4, 7, -3, 2], 'a': [0, 1, 0, 1]})
frame.sort_index(by=['a', 'b'])

排名

排名与排序关系紧密,且会增设一个排名值。默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系的。

obj = Series([7, -5, 7, 4, 2, 0, 4])
obj.rank()

0    6.5
1    1.0
2    6.5
3    4.5
4    3.0
5    2.0
6    4.5
dtype: float64

根据值在原数据中出现的顺序给出排名

obj.rank(method='first')

0    6.0
1    1.0
2    7.0
3    4.0
4    3.0
5    2.0
6    5.0
dtype: float64

采用降序方式排名

obj.rank(ascending=False, method='max')

0    2.0
1    7.0
2    2.0
3    4.0
4    5.0
5    6.0
6    4.0
dtype: float64

DataFrame排名

frame = DataFrame({'b': [4.3, 7, -3, 2], 'a': [0, 1, 0, 1],
                   'c': [-2, 5, 8, -2.5]})
frame.rank(axis=1)

对一个

results matching ""

    No results matching ""