【Python】Pandasでデータフレームを大きい順に並べ替える方法

データ分析において、データフレームの並べ替えは非常に重要な操作です。Pandasライブラリのsort_values関数を使用することで、簡単かつ効率的にデータフレームを並べ替えることができます。

sort_values関数の基本的な使い方

sort_values関数は、データフレームを指定された列または列の組み合わせで並べ替えます。以下の例では、Pandasの組み込みデータセットであるirisを使用して、sepal_length列を昇順で並べ替える方法を示します。

import pandas as pd
# irisデータセットの読み込み
iris = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data", 
                   names=["sepal_length", "sepal_width", "petal_length", "petal_width", "class"])
# sepal_length列で昇順に並べ替え
iris_sorted = iris.sort_values(by="sepal_length")
print(iris_sorted.head())

上記のコードでは、sort_values関数に引数byを指定して、並べ替えの基準となる列を指定しています。sort_values関数は、昇順に並べ替えることがデフォルトであり、降順に並べ替える場合は引数ascending=Falseを指定します。

降順での並べ替え方法

sort_values関数に引数ascending=Falseを指定することで、降順での並べ替えが可能です。以下の例では、sepal_length列を降順で並べ替える方法を示します。

import pandas as pd
# irisデータセットの読み込み
iris = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data", 
                   names=["sepal_length", "sepal_width", "petal_length", "petal_width", "class"])
# sepal_length列で降順に並べ替え
iris_sorted = iris.sort_values(by="sepal_length", ascending=False)
print(iris_sorted.head())

複数列を基準に並べ替える方法

sort_values関数に複数の列を指定することで、複数の列を基にしてデータフレームを並べ替えることができます。以下の例では、sepal_length列を優先的に昇順で並べ替え、同じ値の場合はpetal_length列を昇順で並べ替える方法を示します。

import pandas as pd
# irisデータセットの読み込み
iris = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data", 
                   names=["sepal_length", "sepal_width", "petal_length", "petal_width", "class"])
# sepal_length列を優先的に昇順、同じ値の場合はpetal_length列を昇順で並べ替え
iris_sorted = iris.sort_values(by=["sepal_length", "petal_length"])
print(iris_sorted.head())

上記のコードでは、sort_values関数に引数byに複数の列を指定しています。並べ替えの基準となる列をリスト形式で指定することで、複数列に基づいた並べ替えが可能です。

インデックスを元に戻すリセット方法

sort_values関数による並べ替えは、元のデータフレームのインデックスが変更された状態で出力されます。インデックスを元に戻すためには、reset_index関数を使用する必要があります。以下の例では、sepal_length列を昇順で並べ替えた後、インデックスを元に戻す方法を示します。

import pandas as pd
# irisデータセットの読み込み
iris = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data", 
                   names=["sepal_length", "sepal_width", "petal_length", "petal_width", "class"])
# sepal_length列で昇順に並べ替え
iris_sorted = iris.sort_values(by="sepal_length")
# インデックスをリセット
iris_sorted = iris_sorted.reset_index(drop=True)
print(iris_sorted.head())

上記のコードでは、reset_index関数に引数drop=Trueを指定することで、元のインデックスを破棄して新しいインデックスを付与しています。

まとめ

Pandasライブラリのsort_values関数を使用することで、簡単かつ効率的にデータフレームを並べ替えることができます。並べ替えの基準となる列を指定することで、昇順または降順で並べ替えることができます。また、複数の列を指定することで、複数列に基づいた並べ替えも可能です。ただし、sort_values関数による並べ替えは元のデータフレームのインデックスが変更されるため、reset_index関数を使用してインデックスを元に戻す必要があります。

データ分析において、正しい並べ替えは重要な前提条件です。データフレームの並べ替えを熟知して、効率的にデータ分析を行いましょう。