Pandas DataFrame sort_index()函式

Suraj Joshi 2023年1月30日
  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 的列進行排序。按列名升序排序。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

相關文章 - Pandas DataFrame