pandas排序


按索引进行排序

#定义一个Series
s = Series([1,2,3],index=["a","c","b"])
#对Series的索引进行排序,默认是升序
print(s.sort_index())
'''
a    1
b    3
c    2
'''
#对索引进行降序排序
print(s.sort_index(ascending=False))
'''
c    2
b    3
a    1
'''

按值进行排序

s = Series([np.nan,1,7,2,0],index=["a","c","e","b","d"])
#对Series的值进行排序,默认是按值的升序进行排序的
print(s.sort_values())
'''
d    0.0
c    1.0
b    2.0
e    7.0
a    NaN
'''
#对Seires的值进行降序排序
print(s.sort_values(ascending=False))
'''
e    7.0
b    2.0
c    1.0
d    0.0
a    NaN
'''

DataFrame排序

按索引进行排序

a = np.arange(9).reshape(3,3)
data = DataFrame(a,index=["0","2","1"],columns=["c","a","b"])
#按行的索引升序进行排序,默认按行,升序
print(data.sort_index())
'''
   c  a  b
0  0  1  2
1  6  7  8
2  3  4  5
'''
#按行的索引按降序进行排序
print(data.sort_index(ascending=False))
'''
   c  a  b
2  3  4  5
1  6  7  8
0  0  1  2
'''
#按列升序的索引进行排序
print(data.sort_index(axis=1))
'''
   a  b  c
0  1  2  0
2  4  5  3
1  7  8  6
'''
#按列降序的索引进行排序
print(data.sort_index(ascending=False))
'''
   c  a  b
2  3  4  5
1  6  7  8
0  0  1  2
'''

按值进行排序

a = [[9,3,1],[1,2,8],[1,0,5]]
data = DataFrame(a, index=["0", "2", "1"], columns=["c", "a", "b"])
#按指定列的值大小顺序进行排序
print(data.sort_values(by="c"))
'''
   c  a  b
2  1  2  8
1  1  0  5
0  9  3  1
'''
print(data.sort_values(by=["c","a"]))
'''
   c  a  b
1  1  0  5
2  1  2  8
0  9  3  1
'''
#按指定行值进行排序
print(data.sort_values(by="0",axis=1))
'''
   b  a  c
0  1  3  9
2  8  2  1
1  5  0  1
'''

Series的排名

s = Series([1,3,2,1,6],index=["a","c","d","b","e"])
#默认是根据值的大小进行平均排名
'''
1是最小的,所以第一个1排在第一,第二个1排在第二
因为取的是平均排名,所以1的排名为1.5
'''
print(s.rank())
'''
a    1.5
c    4.0
d    3.0
b    1.5
e    5.0
'''
#根据值在数组中出现的顺序进行排名
print(s.rank(method="first"))
'''
a    1.0
c    4.0
d    3.0
b    2.0
e    5.0
'''

DataFrame的排名

a = [[9, 3, 1], [1, 2, 8], [1, 0, 5]]
data = DataFrame(a, index=["0", "2", "1"], columns=["c", "a", "b"])
print(data)
'''
   c  a  b
0  9  3  1
2  1  2  8
1  1  0  5
'''
#默认按列进行排名
print(data.rank())
'''
     c    a    b
0  3.0  3.0  1.0
2  1.5  2.0  3.0
1  1.5  1.0  2.0
'''
#按行进行排名
print(data.rank(axis=1))
'''
     c    a    b
0  3.0  2.0  1.0
2  1.0  2.0  3.0
1  2.0  1.0  3.0
'''