pandas.DataFrame.sort_index()的作用与使用方法:
sort_index()是pandas.DataFrame类中的一个方法,其作用是按照DataFrame的索引进行排序。
sort_index()可以按照行索引或列索引进行排序,默认情况下是按照行索引进行排序。
sort_index()的语法如下:
DataFrame.sort_index(axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, ignore_index=False)
参数说明如下:
接下来我们举两个示例详细了解pandas.DataFrame.sort_index()函数。
import pandas as pd
import numpy as np
# 创建一个DataFrame对象
df = pd.DataFrame(np.random.randn(5, 4), index=[4, 2, 0, 1, 3], columns=['D', 'A', 'B', 'C'])
print('创建的DataFrame对象为:\n', df)
# 按照行索引进行升序排序
df_sort = df.sort_index()
print('按照行索引进行升序排序的结果为:\n', df_sort)
# 按照行索引进行降序排序
df_sort = df.sort_index(ascending=False)
print('按照行索引进行降序排序的结果为:\n', df_sort)
# 按照列名进行升序排序
df_sort = df.sort_index(axis=1)
print('按照列名进行升序排序的结果为:\n', df_sort)
输出:
创建的DataFrame对象为:
D A B C
4 -1.257657 -0.749841 1.457098 0.423774
2 -0.688276 0.685274 -1.116668 -1.971651
0 -0.756074 1.363849 -0.268599 -0.618124
1 0.420131 -0.293090 1.453239 -0.158057
3 -1.370626 0.758030 -0.009503 -1.154678
按照行索引进行升序排序的结果为:
D A B C
0 -0.756074 1.363849 -0.268599 -0.618124
1 0.420131 -0.293090 1.453239 -0.158057
2 -0.688276 0.685274 -1.116668 -1.971651
3 -1.370626 0.758030 -0.009503 -1.154678
4 -1.257657 -0.749841 1.457098 0.423774
按照行索引进行降序排序的结果为:
D A B C
4 -1.257657 -0.749841 1.457098 0.423774
3 -1.370626 0.758030 -0.009503 -1.154678
2 -0.688276 0.685274 -1.116668 -1.971651
1 0.420131 -0.293090 1.453239 -0.158057
0 -0.756074 1.363849 -0.268599 -0.618124
按照列名进行升序排序的结果为:
A B C D
4 -0.749841 1.457098 0.423774 -1.257657
2 0.685274 -1.116668 -1.971651 -0.688276
0 1.363849 -0.268599 -0.618124 -0.756074
1 -0.293090 1.453239 -0.158057 0.420131
3 0.758030 -0.009503 -1.154678 -1.370626
import pandas as pd
# 创建一个DataFrame对象
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 9, 8, 7, 6, 5, 4, 3]})
# 设置多级索引
df = df.set_index(['A', 'B'])
print('设置多级索引后的DataFrame对象为:\n', df)
# 按照第一个索引(A)进行升序排序
df_sort = df.sort_index(level=0)
print('按照第一个索引进行升序排序的结果为:\n', df_sort)
# 按照第一个索引(A)进行升序排序,并且同时对第二个索引(B)进行降序排序
df_sort = df.sort_index(level=[0, 1], ascending=[True, False])
print('按照第一个索引进行升序排序,第二个索引进行降序排序的结果为:\n', df_sort)
输出:
设置多级索引后的DataFrame对象为:
C D
A B
foo one 1 10
bar one 2 9
foo two 3 8
bar three 4 7
foo two 5 6
two 6 5
bar one 7 4
foo three 8 3
按照第一个索引进行升序排序的结果为:
C D
A B
bar one 2 9
three 4 7
one 7 4
foo one 1 10
two 3 8
two 5 6
three 8 3
按照第一个索引进行升序排序,第二个索引进行降序排序的结果为:
C D
A B
bar three 4 7
one 2 9
one 7 4
foo two 3 8
two 6 5
two 5 6
three 8 3
one 1 10
本文链接:http://task.lmcjl.com/news/17730.html