Python仕事術

Python DataFrameのソートの仕方

Python DataFrameでの表のソートの仕方を紹介

(本記事のコードを作成した開発環境はGoogle Colaboratory Python 3.7.13 となります。)

Excelで表を作成するときに昇順、降順などのソートをかけることは多いと思います。PythonでもExcelと同じようにソートをかけることができます。

それだけではなくExcelでは手間のかかる、2つのキーを選択してのソートや、列ではなく行でのソートをかけることが簡単にできます。

本記事では、例を使ってソートをするときのコードを紹介していきたいと思います。

目次
  • データのソートの仕方
  • 複数キーに対するソート
  • indexをキーにしたソート
  • index名、column名に対するソート

元データとなるexcelファイルを下記に用意しました。ファイル内のSheet1を「df01」として使っていきます。

データのソートの仕方

データのソートにはsort_valuesメソッドを使います。

引数名 デフォルト値 備考
by 必須で指定 キーとなるcolumn名、もしくはindex名を指定
ascending True   Trueなら昇順  Falseなら降順
na_position ソートしたときの欠損値の位置を指定 デフォルトは末尾 firstにすると先頭
inplace False Trueなら元のDataFrameの変更
axis 0 0でindexのソート   1でcolumnのソート

「df01」の「売上金額」を降順でソートしてみます。

複数キーに対するソート

sort_valuesメソッドでは複数のcolumnをキーに選択することができます。その場合、リストで選択して引数「by」に渡します。「店名」と「売上金額」の降順でソートしてみます。

ソートできましたが降順のため店名の順番がD点→A店になりました。引数「ascending」をリストで指示することでA点→D店にすることができます。

indexをキーにしたソート

sort_valuesメソッドではindexをキーにしたソートもcolumnをキーにしたソートと同じように行うことができます。

例として下記のようなDataFrame「df02」を作成しました。

「df02」のindex「idx2」に対してソートをかけてみます。引数「axis」を「1」にすることでindexをキーにしたソートをすることができます。

index名、column名に対するソート

index名、column名のソートにはsort_indexメソッドを使います。

引数名 デフォルト値 備考
ascending True   Trueなら昇順  Falseなら降順
na_position ソートしたときの欠損値の位置を指定 デフォルトは末尾 firstにすると先頭
inplace FALSE Trueなら元のDataFrameの変更
axis 0 0でindexのソート   1でcolumnのソート

先ほど作成したDataFrame「df02」をindexでソートしてみたいと思います。

index名に対してソートすることができました。column名に対してソートしたい場合は、「axis」を「1」にすればできます。