PythonのPandasのデータを大きい方から降順にする方法について

Python,イメージ

AI実装検定のご案内

PythonのPandasでデータを大きい順(降順)に並べ替えるには、sort_values() メソッドを使用します。

このメソッドは、Series(1次元)やDataFrame(2次元)に対して使うことができ、柔軟に並べ替えを行うことができます。

以下では、基本的な使い方から、実践的な応用例まで詳しく解説します。

目次

基本:Seriesを降順にソートする

import pandas as pd

# サンプルのSeries
s = pd.Series([30, 10, 50, 20])

# 降順にソート
s_sorted = s.sort_values(ascending=False)

print(s_sorted)

解説

  • ascending=False にすることで 降順 に。
  • 元のSeries s は変化しない(非破壊的処理)。変更を反映させたい場合は inplace=True を使います。

DataFrameの特定の列を降順にソートする

import pandas as pd

# サンプルのDataFrame
df = pd.DataFrame({
    '名前': ['Aさん', 'Bさん', 'Cさん'],
    '点数': [88, 92, 75]
})

# 「点数」列で降順にソート
df_sorted = df.sort_values(by='点数', ascending=False)

print(df_sorted)

解説

  • by='点数':並べ替えの基準となる列名を指定
  • ascending=False:降順にする

複数列で降順ソートする

複数の列を条件にして並べ替えることも可能です。

df = pd.DataFrame({
    '名前': ['Aさん', 'Bさん', 'Cさん', 'Dさん'],
    '点数': [88, 92, 88, 92],
    '年齢': [23, 21, 25, 20]
})

# 「点数」を降順、「年齢」を昇順でソート
df_sorted = df.sort_values(by=['点数', '年齢'], ascending=[False, True])

print(df_sorted)

解説

  • ascending にリストを渡すことで、それぞれの列の昇降順を細かく設定できる。

元のDataFrameを直接書き換えたい場合

df.sort_values(by='点数', ascending=False, inplace=True)
  • inplace=True:ソートを元の df に直接反映(戻り値は None

インデックスで降順にソートしたい場合

列ではなく インデックス(行名) を対象にしたいときは sort_index() を使います。

df = df.sort_index(ascending=False)

ソート後に上位n件を取得(ランキングなど)

# 点数が高い順に上位3件を取得
top3 = df.sort_values(by='点数', ascending=False).head(3)

まとめ

目的コード例
Seriesを降順にs.sort_values(ascending=False)
DataFrameの列で降順df.sort_values(by='列名', ascending=False)
複数列でソートdf.sort_values(by=['列1', '列2'], ascending=[False, True])
結果を元のdfに反映df.sort_values(..., inplace=True)
ソート後にインデックスをリセットdf.sort_values(..., ignore_index=True)
インデックスで降順にdf.sort_index(ascending=False)

以上、PythonのPandasのデータを大きい方から降順にする方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次