データ分析用ライブラリpandasのデータフレームをソートする方法を説明する。データフレームをソートするにはsort_valuesを用いる。
ライブラリpandasを使うにはインポートが必要。通常次のようにpdと略されてインポートされる。
import pandas as pd
1. sort_valuesの書式
sort_valuesの書式は以下の通り。
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)
byにcolumnのindexを指定するとその値でソートされる。ascendingはデフォルトがTrue。指定しないと昇順(小さい方から順番)に並べられる。Falseを指定すると降順(大きい方から順番)に並べられる。
2. データフレームのソートの例
次のデータフレームをソートする場合。
import pandas as pd data = [[25, 165, 65], [45, 178, 80], [32, 183, 72]] name = ['Jane', 'Bob', 'Mike'] property = ['age', 'toll', 'weight'] df = pd.DataFrame(data=data, columns=property, index=name) df
実行結果
age height weight Jane 25 165 65 Bob 45 178 80 Mike 32 183 72
columnのindex'age'をbyに指定した場合。'age'の値でソートされる。ascendingは指定せずデフォルトのTrueのため昇順に並べられる。
df.sort_values(by=['age'])
実行結果
age height weight Jane 25 165 65 Mike 32 183 72 Bob 45 178 80
ascendingにFalseを指定すると降順に並べられる。
df.sort_values(by=['age'], ascending=False))
実行結果
age height weight Bob 45 178 80 Mike 32 183 72 Jane 25 165 65
byに複数のindexを指定すると、一つ目のindexでソートされ、一つ目のindexが同じ値の場合に二つ目のindexでソートされる。
次のデータフレームをソートする場合。
import pandas as pd data = [[25, 165, 65], [45, 178, 80], [32, 183, 72], [25, 162, 68], [33, 178, 69]] name = ['Jane', 'Bob', 'Mike', 'Lisa', 'Ken'] property = ['age', 'toll', 'weight'] df = pd.DataFrame(data=data, columns=property, index=name) df
実行結果
age height weight Jane 25 165 65 Bob 45 178 80 Mike 32 183 72 Lisa 25 162 68 Ken 33 178 69
一つ目のindexに'age'、二つ目のindexに'toll'を指定した場合
df.sort_values(by=['age', 'toll'])
実行結果
age height weight Lisa 25 162 68 Jane 25 165 65 Mike 32 183 72 Ken 33 178 69 Bob 45 178 80
一つ目のindexに'toll'、二つ目のindexに'age'を指定した場合
df.sort_values(by=['age', 'toll'])
実行結果
age height weight Lisa 25 162 68 Jane 25 165 65 Ken 33 178 69 Bob 45 178 80 Mike 32 183 72
3. リファレンス
pandas > pandas.DataFrame.sort_value
使用したバージョン:Python 3.8.8/pandas 1.2.4
0 件のコメント:
コメントを投稿