Pandas DataFrame sort_index() 関数

Suraj Joshi 2023年1月30日
  1. pandas.DataFrame.sort_index() メソッド
  2. 例:sort_index() メソッドを使用してインデックスに基づく Pandas のデータフレームのソート
  3. 例:sort_index() メソッドを使用して PandasDataFrame のデータフレームのカラムのソート
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,
                     ignore_index=False
                     key=None)

パラメータ

axis 'row'(axis=0)または'column'(axis=1)に沿ってソートします。
level Int または List。指定されたインデックスレベルの値でソート
ascending 昇順 (ascending=True) または降順(ascending=False) でソートします。
inplace 論理値。True ならば、呼び出し元の DataFrame をその場で変更します。
kind 使用するソートアルゴリズムを指定します。
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 となっており、データフレームは row 軸に沿ってソートされるか、インデックスの値でソートされます。axis=1 とすると、データフレームの列をソートします。デフォルトでは、このメソッドは DataFrame を昇順にソートします。降順にソートするには、ascending=False を指定します。

例:sort_index() メソッドを使用してインデックスに基づく Pandas のデータフレームのソート

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 をソートするには、index パラメータを指定する必要があります。デフォルトでは、axis の値は 0 であり、これにより 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 のデータフレームをインデックスの値に基づいて降順にソートします。

例:sort_index() メソッドを使用して PandasDataFrame のデータフレームのカラムのソート

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