本記事では、PythonでExcel のソート(並び替え)操作、特定の列を表示する方法をご紹介します。
Pythonの実行環境
今回は、以下の実行環境でプログラムを実行しています。
・Python 3.7.6
・Jupyterlab 1.2.6
・Pandas:1.1.2
テストデータは、次のような予算管理表を使います。
ファイル名は「テストデータ.xlsx」で、シート名は「予算管理表」です。
■予算管理表
本記事で、利用するライブラリはPandasです。
そして、テストデータの予算管理表をdfとして読み込んでおきます。
import pandas as pd
df = pd.read_excel('テストデータ.xlsx', sheet_name = '予算管理表')
※本記事では、Pythonのコードの下のコメントアウトは、出力結果を示しています。
PythonでExcelのソート(並び替え)操作を行う方法
Excelでは、次のようにフィルターを使って昇順・降順で並び替えをします。
Pythonでは、sort_values()を使ってソート(並べ替え)を行います。
例として、 「2021年度」列を昇順にソートしてみます。
df.sort_values('2021年度')
sort_values()の引数に列名を指定するだけで、とてもシンプルに書けます。
結果は次のようになります。「2021年度」列の値が昇順になっています。
次に、降順のソートをみていきます。
df.sort_values('2021年度', ascending=False)
降順の場合は、2つ目の引数にascending=Falseを設定します。
Pythonで複数の列でソート(並び替え)操作を行う方法
次は、複数の列でソートする方法をみていきます。
Excelでいうと、「最初に「2022年度」列を降順にソートし、次に「2021年度」列を降順にソートする」といった操作です。
後にソートした列ほど優先されるので、上の例では、「2021年度」列 → 「2022年度」列 の順で、降順にソートされた形になっています。
Pythonでは、sort_values()の1つ目の引数にリストを指定することで実現できます。
df.sort_values(['2021年度', '2022年度'], ascending=False)
リストは、ソートを優先する順番で書きます。
上のExcelと同様の結果となります。
Pythonで特定の列だけを表示する方法
最後に、特定の列だけで表示する方法をご紹介します。
例えば、2021年度の金額が大きい件名を確認したいとします。
その時は、他の情報は排除して「件名」列、「2021年度」列だけみたいですよね。
Pythonでは、次のように一旦、view_columnsとして表示する列を定義して、表示する列を絞ると良いです。
view_columns = ['件名', '2021年度']
df.sort_values('2021年度', ascending=False)[view_columns]
結果として、「2021年度」列で降順にソートされ、必要な情報だけが表示されました。
以上、PythonでExcelのソート(並び替え)操作、特定の列だけを表示する方法を説明してきました。
最後まで読んでいただき、ありがとうございました。