英国でデータサイエンスを学ぶ

30代になってから海外で統計学・機械学習・プログラミングを勉強

MENU

Python Pandas データフレームでソート

Python Pandasのデータフレーム でソート

Pandasのデータフレーム で、特定の列を基準にソートしたい時の方法です。



データフレーム の準備

例えば、次のようなデータフレーム があるとします。
col1 col2 col3 col4
ind1 1 2 3 4
ind2 3 2 5 1
ind3 6 7 8 9
ind4 5 3 2 1
ind5 7 5 3 1


これを作るには、

上記表をコピーペースト

上記コードをコピーペーストして、以下のコードを実行します

import pandas as pd
df = pd.read_clipboard()

下記のコードを実行

もしくは、直接的にデータフレーム を作ってしまうという方法があります。

import pandas as pd
df = pd.DataFrame([[1,2,3,4],[3,2,5,1],[6,7,8,9],[5,3,2,1],[7,5,3,1]],index = ["ind1","ind2","ind3","ind4","ind5"],columns = ["col1","col2","col3","col4"])


データフレーム を特定の列を基準にして昇順ソート

前述の通り作成したデータフレーム を特定の列でソートします。
今回は、1番目の列(列名col1)を基準にソートします。

df.sort_values(by='col1') 

これで次のようなデータフレーム が出力されます。

col1 col2 col3 col4
ind1 1 2 3 4
ind2 3 2 5 1
ind4 5 3 2 1
ind3 6 7 8 9
ind5 7 5 3 1




データフレーム を特定の列を基準にして降順ソート

df.sort_values(by='col1', ascending=False)

これで次のようなデータフレーム が出力されます。

col1 col2 col3 col4
ind5 7 5 3 1
ind3 6 7 8 9
ind4 5 3 2 1
ind2 3 2 5 1
ind1 1 2 3 4




元のデータフレーム を変更するには

上記の方法では、元のデータフレーム df自体はそのままになります。
それを変更したい場合には、

df.sort_values(by='col1', ascending=False, inplace = True)

もしくは、

df = df.sort_values(by='col1', ascending=False)

とします。