データをソートする基本的な方法
Pandasでデータをソートするには、sort_values() メソッドを使用します。
4.1 昇順でソートする
Price 列を昇順(小さい順)でソートしてみましょう。
# Price列で昇順ソート
df_sorted_asc = df.sort_values(by='Price')
print(df_sorted_asc)
出力結果
Product Price Quantity
0 A 500 5
4 E 700 9
2 C 800 7
3 D 1200 3
1 B 1500 2
4.2 降順でソートする
Price 列を降順(大きい順)でソートする場合は、ascending=False を指定します。
# Price列で降順ソート
df_sorted_desc = df.sort_values(by='Price', ascending=False)
print(df_sorted_desc)
出力結果
Product Price Quantity
1 B 1500 2
3 D 1200 3
2 C 800 7
4 E 700 9
0 A 500 5
複数の列でソートする
複数の列を基準にソートすることも可能です。by パラメータにリストで列名を渡します。
# Priceを昇順、Quantityを降順でソート
df_sorted_multi = df.sort_values(by=['Price', 'Quantity'], ascending=[True, False])
print(df_sorted_multi)
出力結果
Product Price Quantity
0 A 500 5
4 E 700 9
2 C 800 7
3 D 1200 3
1 B 1500 2
インデックスでソートする
データフレームのインデックス自体をソートするには、sort_index() メソッドを使用します。
# インデックスでソート(降順)
df_sorted_index = df.sort_index(ascending=False)
print(df_sorted_index)
出力結果
Product Price Quantity
4 E 700 9
3 D 1200 3
2 C 800 7
1 B 1500 2
0 A 500 5
ソート結果を保持する方法
デフォルトでは、sort_values() や sort_index() はソート後の新しいデータフレームを返します。元のデータフレームを変更したい場合は、inplace=True を指定します。
# 元のデータフレームを変更して昇順ソート
df.sort_values(by='Price', inplace=True)
print(df)
出力結果
Product Price Quantity
0 A 500 5
4 E 700 9
2 C 800 7
3 D 1200 3
1 B 1500 2
実践例:売上データのソート
ステップ1:データの読み込み
売上データを含む sales_data.csv ファイルを読み込みます。
# sales_data.csv の読み込み
df_sales = pd.read_csv('sales_data.csv')
print(df_sales.head())
例のデータ
OrderID Customer Amount
0 1 John 2500
1 2 Mike 1500
2 3 Sara 3200
3 4 Mike 2800
4 5 John 3000
ステップ2:特定の列でソート
Amount 列で降順ソートして、売上金額の高い順に並べます。
# Amount列で降順ソート
df_sales_sorted = df_sales.sort_values(by='Amount', ascending=False)
print(df_sales_sorted.head())
出力結果
OrderID Customer Amount
2 3 Sara 3200
4 5 John 3000
3 4 Mike 2800
0 1 John 2500
1 2 Mike 1500
ステップ3:複数の列でソート
Customer 列で昇順、Amount 列で降順にソートして、顧客ごとに売上金額の高い順に並べます。
# Customerを昇順、Amountを降順でソート
df_sales_sorted_multi = df_sales.sort_values(by=['Customer', 'Amount'], ascending=[True, False])
print(df_sales_sorted_multi)
出力結果
OrderID Customer Amount
4 5 John 3000
0 1 John 2500
3 4 Mike 2800
1 2 Mike 1500
2 3 Sara 3200
まとめ
Pandasを使用すると、データを簡単にソートすることができます。sort_values() メソッドを活用して、さまざまな条件でデータを並び替えましょう。
重要なポイント
- 単一の列でソート:
sort_values(by='列名') - 複数の列でソート:
sort_values(by=['列名1', '列名2'], ascending=[True, False]) - インデックスでソート:
sort_index() - 元のデータフレームを変更:
inplace=True を指定
関連キーワード
- Pandas
- データソート
- sort_values
- データ分析
- Python
- DataFrame
- 昇順ソート
- 降順ソート
- インデックスソート
- データ操作
参考リンク
ご質問・ご意見
データのソートに関する疑問やご意見がありましたら、お気軽にコメントやお問い合わせください。
注意事項
データの取り扱いに関する法律や規約を遵守してください。