概要
今回は、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におけるデータのソート方法の基本は上記となります。他にも多くのパラメータが適用されているので興味のある方はぜひ試してください。