今回は、PythonでDataFrameをソートする方法を詳しく説明します。
sort_values() 関数によるデータフレームの並べ替え
Python Pandasモジュールは、大規模なデータレコードを扱うための様々な関数を提供しています。
データフレームでデータレコードを扱っていると、データをソートして出力を表現する必要がある場面によく出くわします。
このとき、Pythonのpandas.dataframe.sort_values()関数が威力を発揮します。
sort_values()関数は、カスタマイズされた方法でデータを昇順または降順にソートします。
次のセクションでは、この関数の構造について説明します。
この記事もチェック:Pandasのデータフレームに行を追加する5つの簡単な方法
sort_values() のシンタックス
以下の構文を見てください。
pandas.DataFrame.sort_values(by, axis=0, ascending=True, kind=’mergesort’)
|
- で指定します。ソートされる列のリストを表します。
- 軸:0は行単位、1は列単位でソートすることを表します。
- 昇順。昇順:True の場合、データフレームを昇順でソートします。
- kind: 3つの値を持つことができます。Quicksort
,mergesort,heapsort`’ の3つの値があります。
次のセクションでは、sort_values()関数の実装に焦点を当てます。
この記事もチェック:Pythonによるバブルソートの昇順、降順の実装方法とコードを解説する
Pythonでデータフレームをソートするサンプルコード
この例では、最初に pandas.dataframe() 関数でデータフレームを作成しました。
さらに、sort_values()関数を使用して、列 ‘RATE’ を降順にソートしています。
例えば、以下の様になります。
import pandas as pd
data = pd.DataFrame([[3,0,1], [4,4,4], [1,7,7], [10,10,10]],
index=['Python', 'Java', 'C','Kotlin'],
columns=['RATE','EE','AA'])
sort = data.sort_values("RATE", axis = 0, ascending = False)
print("Data before sorting:)
print(data)
print("Data after sorting:)
print(sort)
|
結果は以下の通りです。
Data before sorting: RATE EE AA
Python 3 0 1
Java 4 4 4
C 1 7 7
Kotlin 10 10 10
Data after sorting: RATE EE AA
Kotlin 10 10 10
Java 4 4 4
Python 3 0 1
C 1 7 7
|
以下の例では、上記のデータフレームを2つのカラム(’EE’と’AA’)でソートしています。
例えば、以下の様になります。
import pandas as pd
data = pd.DataFrame([[3,0,1], [4,4,4], [1,7,7], [10,10,10]],
index=['Python', 'Java', 'C','Kotlin'],
columns=['RATE','EE','AA'])
sort = data.sort_values(["EE","AA"], axis = 0, ascending = True)
print("Data before sorting:)
print(data)
print("Data after sorting:)
print(sort)
|
出力。
下の図のように、データフレームは’EE’と’AA’の列でそれぞれ昇順にソートされます。
Data before sorting: RATE EE AA
Python 3 0 1
Java 4 4 4
C 1 7 7
Kotlin 10 10 10
Data after sorting: RATE EE AA
Python 3 0 1
Java 4 4 4
C 1 7 7
Kotlin 10 10 10
|
まとめ
ここまでで、このトピックは終了です。
sort_values()関数がデータフレームをソートする機能を理解しました。
もし何か疑問があれば、お気軽にコメントください。