Python × Excel

PythonでExcelのソート(並び替え)操作、特定の列だけを表示する方法

python-excel-sort

本記事では、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では、次のようにフィルターを使って昇順・降順で並び替えをします。

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年度」列を降順にソートする」といった操作です。

Excelソート2

後にソートした列ほど優先されるので、上の例では、「2021年度」列 → 「2022年度」列 の順で、降順にソートされた形になっています。

 

Pythonでは、sort_values()1つ目の引数にリストを指定することで実現できます。

df.sort_values(['2021年度', '2022年度'], ascending=False)

リストは、ソートを優先する順番で書きます。

上のExcelと同様の結果となります。

ソート結果2

 

 

Pythonで特定の列だけを表示する方法

最後に、特定の列だけで表示する方法をご紹介します。

例えば、2021年度の金額が大きい件名を確認したいとします。

その時は、他の情報は排除して「件名」列、「2021年度」列だけみたいですよね。

Pythonでは、次のように一旦、view_columnsとして表示する列を定義して、表示する列を絞ると良いです。

view_columns = ['件名', '2021年度']
df.sort_values('2021年度', ascending=False)[view_columns]

 

結果として、「2021年度」列で降順にソートされ、必要な情報だけが表示されました。

python表示列を絞る

 

 

以上、PythonでExcelのソート(並び替え)操作、特定の列だけを表示する方法を説明してきました。

最後まで読んでいただき、ありがとうございました。

 

よく読まれている記事

se-shikaku 1

  社内SEになるには資格って必要?社内SEでキャリアップするときにおすすめの資格は? 回答としては、 社内SEは、対人スキル、実務での対応力や最新情 ...

社内SEの仕事内容 2

  社内SEってどんな仕事なんだろ~ 検索しても転職サイトの記事ばかりでよく分からない・・   確かにそうですね。。実経験を基に、社内SE( ...

side-work-trial 3

  コロナで会社の経営も不安。。個人でお金稼ぎたいな~ 今、こう考えるサラリーマン、OLの方はごまんといると思います。   僕は、本業では社 ...

adsense-pass 4

【3記事で一発合格】Google AdSense申請に合格したブログ情報 こんにちは、いなサラ(@いなサラ|田舎の情シスサラリーマン)です。 2019年10月5 ...

-Python × Excel

© 2020 inasala note