【3.3.4】Pandas--排序

常用的3种方法:

  • .sort_index()方法在指定轴上根据索引进行排序,默认升序 .sort_index(axis=0, ascending=True)
  • .sort_values()方法在指定轴上根据数值进行排序,默认升序 Series.sort_values(axis=0, ascending=True)

一、sort_values

DataFrame.sort_values(by, axis=0, ascending=True)

by : axis轴上的某个索引或索引列表

NaN统一放到排序末尾

import pandas as pd
import numpy as np 

b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])

print b
    0   1   2   3   4
c   0   1   2   3   4
a   5   6   7   8   9
d  10  11  12  13  14
b  15  16  17  18  19


g= b.sort_values(2,ascending=False)
print g
    0   1   2   3   4
b  15  16  17  18  19
d  10  11  12  13  14
a   5   6   7   8   9
c   0   1   2   3   4

h = b.sort_values('a',axis=1,ascending=False)
print h
    4   3   2   1   0
c   4   3   2   1   0
a   9   8   7   6   5
d  14  13  12  11  10
b  19  18  17  16  15

一列增序,一列降序

b,c为列名,inplace=True时,替换原来的数据

df.sort_values(['b', 'c'], ascending=[True, False], inplace=True)

二、sort_index

import pandas as pd
import numpy as np 

b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])

print b
    0   1   2   3   4
c   0   1   2   3   4
a   5   6   7   8   9
d  10  11  12  13  14
b  15  16  17  18  19

c = b.sort_index()
    print c
        0   1   2   3   4
    a   5   6   7   8   9
    b  15  16  17  18  19
    c   0   1   2   3   4
    d  10  11  12  13  14

    e =b.sort_index(ascending=False)
    print e
        0   1   2   3   4
    d  10  11  12  13  14
    c   0   1   2   3   4
    b  15  16  17  18  19
    a   5   6   7   8   9

    m = b.sort_index(axis=1,ascending=False)
    print m
        4   3   2   1   0
    c   4   3   2   1   0
    a   9   8   7   6   5
    d  14  13  12  11  10
    b  19  18  17  16  15

参考资料:

北京理工大学 嵩山 www.python123.org

个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn

Sam avatar
About Sam
专注生物信息 专注转化医学