pandas入門 – データのソート

概要

今回は、pandasのDataFrameのソート(並び替え)とデータの抽出方法について紹介したいと思います。

データのソート

まずはデータのソートについて説明します。データのソートを行うにはsort_valuesを利用します。 次の例では、データを年齢の昇順に並び替えています。

df = pd.DataFrame({
    'id': [1, 2, 3],
    'name': ['taro', 'takuya', 'erika'],
    'age': [20, 25, 18],
    'sex': ['male', 'male', 'female']
})

df. sort_values(by='age')
	id	name	age	sex
2	3	erika	18	female
0	1	taro	20	male
1	2	takuya	25	male

降順でソートするにはパラメータにascending=Falseを指定します。

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

上記を確認していただくとindexが2, 0, 1となっています。ソート後のindexを振り直すにはreset_index()を利用します。

df. sort_values(by='age', ascending=False).reset_index()

複数列を基準にソート

ソートのキーに複数列を指定することも可能です。その場合は’by’にリスト型でカラム名を指定します。 以下の例ではage, heightの昇順でソート指定ます。ageが25のデータは2件ありますが、heightの小さいhanako が先に来ます。

df = pd.DataFrame({
    'id': [1, 2, 3, 4],
    'name': ['taro', 'takuya', 'erika', 'hanako'],
    'age': [20, 25, 18, 25],
    'sex': ['male', 'male', 'female', 'female'],
    'height': [170, 180, 160, 165]
})

df. sort_values(by=['age', 'height'])
  	id	name	age	sex	height
2	3	erika	18	female	160
0	1	taro		20	male	170
3	4	hanako	25	female	165
1	2	takuya	25	male	180

まとめ

pandasにおけるデータのソート方法の基本は上記となります。他にも多くのパラメータが適用されているので興味のある方はぜひ試してください。

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html