エクセルファイルを読み込んだDataFrameの
指定の列を基準に並び替えたい!
そんなお悩みを、Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。
PythonのDataFrameで列を昇順・降順にソートするには
「sort_values」を使います。まずは実行見本をどうぞ。
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import pandas as pd
df = pd.read_excel('input.xlsx')
df = df.sort_values( by = 'ひらがな' )
#df = df.sort_values( by = 'ひらがな', ascending = False )
#df = df.sort_index( axis = 1 )
df.to_excel('output.xlsx')
df = df.sort_values( by = 'ひらがな' )
#df = df.sort_values( by = 'ひらがな', ascending = False )
#df = df.sort_index( axis = 1 )
事前準備
- pandasのインストール
今回の本題とは直接関係ありませんが、エクセルファイルの読み込みをする際に「pandas」が必要になります。
pandasのインストール方法
pandasを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install pandas
※pandasを使用したことがある場合は、このインストール作業は不要です。
解説
並び替え
sort_values(昇順)
>>5.df = df.sort_values( by = ‘ひらがな’ )
上記一文にて、「ひらがな」列を基準にして「昇順」に並び替えられます。
【 変数名 = 変数名.sort_values( by = ‘並び替えたい列名’ ) 】
空白がある場合、空白は最後になります。
▼「df = df.sort_values( by = ‘数値’ )」の実行結果
ひらがなや漢字などが混ざっている場合は、「英字」「ひらがな」「カタカナ」「漢字」「空白」の順に並びます。
▼「df = df.sort_values( by = ‘String’ )」の実行結果
sort_values(降順)
並び順を「降順」にしたい場合は、()内に「ascending = False」を記述します。
>>6.#df = df.sort_values( by = ‘ひらがな’, ascending = False )
▼実行結果
sort_index(列を並び替え)
列を並び替えすることもできます。
>>#df = df.sort_index( axis = 1 )
▼実行結果
()内の「axis = 1」を削除するか、「axis = 0」にすると、行番号で並び替えすることもできます。
▼「df = df.sort_index()」の実行結果
その他の解説
「read_excel」などは下記記事で解説しております。ご参考ください。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
まとめ
PythonのDataFrameで列を昇順・降順にソート(並び替え)する方法を解説いたしました。
このひと手間で、出力したファイルが見やすくなりますので、ぜひご活用ください。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!