📜  Python|熊猫 dataframe.sort_index()(1)

📅  最后修改于: 2023-12-03 15:04:26.870000             🧑  作者: Mango

Python Pandas DataFrame.sort_index()

当我们在使用Pandas的DataFrame对象时,经常需要对序列进行排序以使得数据更容易分析。sort_index()函数可以对DataFrame进行排序,按照指定的轴排序索引。

语法
DataFrame.sort_index(axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, ignore_index=False, key=None)

参数说明:

  • axis:轴的方向。默认为0,表示按照行索引排序;如果等于1,表示按照列索引排序。
  • level:如果轴是多层索引的,则按照指定级别的索引进行排序。
  • ascending:表示排序的顺序。默认为True,即升序排列;如果是False,表示降序排列。
  • inplace:如果为True,则排序后的DataFrame将替换为原始的DataFrame。默认为False。
  • kind:排序算法的类型。默认值为“quicksort”,其他选项包括“mergesort”和“heapsort”。
  • na_position:处理缺失值的位置,取值为“last”或“first”。
  • sort_remaining:如果存在多个索引,则是否对其他索引继续排序。默认为True。
  • ignore_index:如果设置为True,则新的DataFrame使用0到n-1重新索引。默认为False。
  • key:当用于字符串类型的排序时,此参数接受用于转换的函数。
示例
例1:使用行索引升序排序
import pandas as pd

data = {'name':['Tom', 'Jerry', 'Mickey', 'Minnie'],
        'age':[28, 34, 29, 31],
        'gender':['M', 'M', 'M', 'F'],
        'score':[85.5, 92.0, 87.5, 88.0]}

df = pd.DataFrame(data)
df.sort_index()

输出:

      name  age gender  score
0      Tom   28      M   85.5
1    Jerry   34      M   92.0
2   Mickey   29      M   87.5
3   Minnie   31      F   88.0
例2:使用列索引降序排序
import pandas as pd

data = {'name':['Tom', 'Jerry', 'Mickey', 'Minnie'],
        'age':[28, 34, 29, 31],
        'gender':['M', 'M', 'M', 'F'],
        'score':[85.5, 92.0, 87.5, 88.0]}

df = pd.DataFrame(data)
df.sort_index(axis=1, ascending=False)

输出:

   score gender     name  age
0   85.5      M      Tom   28
1   92.0      M    Jerry   34
2   87.5      M   Mickey   29
3   88.0      F   Minnie   31
例3:使用多级行索引排序
import pandas as pd

data = {'name':['Tom', 'Jerry', 'Mickey', 'Minnie'],
        'age':[28, 34, 29, 31],
        'gender':['M', 'M', 'M', 'F'],
        'score':[85.5, 92.0, 87.5, 88.0]}

df = pd.DataFrame(data)
df = df.set_index(['gender', 'name'])
df.sort_index(level=[0, 1], ascending=[False, True])

输出:

             age  score
gender name           
M      Jerry   34   92.0
       Mickey  29   87.5
       Tom     28   85.5
F      Minnie  31   88.0

在这个示例中,我们将'gender''name'设置为多级索引,并按照'gender''name'排序。ascending=[False, True]指示我们按'gender'降序排序,而按'name'升序排序。

结论

使用sort_index()函数,您可以轻松地对Pandas DataFrame进行排序,这有助于您对数据进行更深入的分析和理解。要了解更多有关sort_index()函数的信息,请参阅Pandas官方文档。