df.sort_index()实现按索引排序,默认以从小到大的升序方式排列,如希望按降序排列,传入ascending = False

import pandas as pd

df = pd.DataFrame([['liver','E',89,21,24,64],
                   ['Arry','C',36,37,37,57],
                   ['Ack','A',57,60,18,84],
                   ['Eorge','C',93,96,71,78],
                   ['Oah','D',65,49,61,86]
                  ], 
                   columns = ['name','team','Q1','Q2','Q3','Q4'])

# 索引降序
res1 = df.sort_index(ascending=False)

# 按列索引名排序:
# 在索引方向上排序
res2 = df.sort_index(axis=1, ascending=False)

结果展示

df

res1

res2

扩展

# 更多方法如下:
s.sort_index() # 升序排列
df.sort_index() # df也是按索引进行排序
df.team.sort_index()
s.sort_index(ascending=False) # 降序排列
s.sort_index(inplace=True) # 排序后生效,改变原数据
# 索引重新0-(n-1)排,可以得到它的排序号
s.sort_index(ignore_index=True)
s.sort_index(na_position='first') # 空值在前,另'last'表示空值在后
s.sort_index(level=1) # 如果多层,排一级
s.sort_index(level=1, sort_remaining=False) # 这层不排
# 行索引排序,表头排序
df.sort_index(axis=1) # 会把列按列名顺序排序

df.reindex()指定自己定义顺序的索引,实现行和列的顺序重新定义

import pandas as pd

df = pd.DataFrame({
        'A':[1,2,3],
        'B':[4,5,6]
        },index=['a','b','c'])

# 按要求重新指定索引顺序
res1 = df.reindex(['c','b','a'])

# 指定列顺序
res2 = df.reindex(['B','A'], axis=1)

结果展示

df

res1

res2

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐