Pandas DataFrame sort_index()函数

Suraj Joshi 2023年1月30日 2021年2月28日
  1. pandas.DataFrame.sort_index() 方法
  2. 示例:使用 sort_index() 方法对 Pandas DataFrame 进行索引排序
  3. 示例:使用 sort_index() 方法对 Pandas DataFrame 的列进行排序
Pandas DataFrame sort_index()函数

本教程介绍了如何使用 pandas.DataFrame.sort_index() 方法,根据索引对 Pandas DataFrame 进行排序。

我们将使用上面例子中显示的 DataFrame 来解释如何根据索引值对 Pandas DataFrame 进行排序。

import pandas as pd

pets_df = pd.DataFrame({
    'Pet': ["Dog","Cat","Rabbit","Fish"],
    'Name':["Rocky","Luna","Coco","Finley"] ,
    'Age(Years)': [3,5,5,4],

},index=["4","2","1","3"])

print(pets_df)

输出:

      Pet    Name  Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1  Rabbit    Coco           5
3    Fish  Finley           4

pandas.DataFrame.sort_index() 方法

语法

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

参数

axis 沿行(axis=0)或列(axis=1)排序
level 整数或列表。根据指定的索引级别的值进行排序
ascending 按升序排序(ascending=True)或降序排序(ascending=False)
inplace 布尔型。如果为 True,则在原地修改调用者的 DataFrame。
kind 使用哪种排序算法。默认值:quicksort
na_position NaN 值放在开头(na_position=first)或结尾(na_position=last)。
sort_remaining 布尔型。如果为 True,则在按 index=multilevel 的指定级别排序后,也按其他级别排序(按顺序)。
ignore_index 布尔值。如果为 True,则结果轴的标签将为 0,1,… n-1。
key 可调用对象。如果不是 None 的话,则在排序之前将这个 key 函数应用于索引值。

返回

如果 inplaceTrue,返回沿指定轴按索引排序的 DataFrame,否则为 “None”。

默认情况下,我们设置 axis=0,代表 DataFrame 将沿行轴排序或按索引值排序。如果我们设置 axis=1,将对 DataFrame 的列进行排序。默认情况下,该方法将以升序对 DataFrame 进行排序。如果要按降序对 DataFrame 进行排序,我们设置 ascending=False

示例:使用 sort_index() 方法对 Pandas DataFrame 进行索引排序

import pandas as pd

pets_df = pd.DataFrame({
    'Pet': ["Dog","Cat","Rabbit","Fish"],
    'Name':["Rocky","Luna","Coco","Finley"] ,
    'Age(Years)': [3,5,5,4],

},index=["4","2","1","3"])

sorted_df=pets_df.sort_index()

print("Initial DataFrame:")
print(pets_df,"\n")

print("DataFrame Sorted by Index Values:")
print(sorted_df)

输出:

Initial DataFrame:
      Pet    Name Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1 Rabbit    Coco           5
3    Fish Finley           4

DataFrame Sorted by Index Values:
      Pet    Name Age(Years)
1 Rabbit    Coco           5
2     Cat    Luna           5
3    Fish Finley           4
4     Dog   Rocky           3

它根据索引值按升序对 pet_df DataFrame 进行排序。要根据索引值对 DataFrame 进行排序,我们需要指定 index 参数。默认情况下,axis 的值是 0,它对 DataFrame 的行进行排序,即根据索引值对 DataFrame 进行排序。

要根据索引值按降序对 DataFrame 进行排序,我们在 sort_index() 方法中设置 ascending=False

import pandas as pd

pets_df = pd.DataFrame({
    'Pet': ["Dog","Cat","Rabbit","Fish"],
    'Name':["Rocky","Luna","Coco","Finley"] ,
    'Age(Years)': [3,5,5,4],

},index=["4","2","1","3"])

sorted_df=pets_df.sort_index(ascending=False)

print("Initial DataFrame:")
print(pets_df,"\n")

print("DataFrame Sorted in Descending order based Index Values:")
print(sorted_df)

输出:

Initial DataFrame:
      Pet    Name Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1 Rabbit    Coco           5
3    Fish Finley           4

DataFrame Sorted in Descending order based Index Values:
      Pet    Name Age(Years)
4     Dog   Rocky           3
3    Fish Finley           4
2     Cat    Luna           5
1 Rabbit    Coco           5

它根据索引值按降序对 pets_df DataFrame 进行排序。

示例:使用 sort_index() 方法对 Pandas DataFrame 的列进行排序

为了对 Pandas DataFrame 的列进行排序,我们在 sort_index() 方法中设置 axis=1

import pandas as pd

pets_df = pd.DataFrame({
    'Pet': ["Dog","Cat","Rabbit","Fish"],
    'Name':["Rocky","Luna","Coco","Finley"] ,
    'Age(Years)': [3,5,5,4],

},index=["4","2","1","3"])

sorted_df=pets_df.sort_index(axis=1)

print("Initial DataFrame:")
print(pets_df,"\n")

print("DataFrame with sorted Columns:")
print(sorted_df)

输出:

Initial DataFrame:
      Pet    Name  Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1  Rabbit    Coco           5
3    Fish  Finley           4

DataFrame with sorted Columns:
   Age(Years)    Name     Pet
4           3   Rocky     Dog
2           5    Luna     Cat
1           5    Coco  Rabbit
3           4  Finley    Fish

它对 pets_df DataFrame 的列进行排序。按列名升序排序。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相关文章 - Pandas DataFrame