Pandasシリーズをソートする方法を解説!sort_values()の使い方
この記事では、Pandasライブラリを使ってシリーズ(Series)をソートする方法を解説します。まず、ソートされていないPandasシリーズを定義し、Pandasライブラリに用意されている sort_values() 関数を使用して昇順・降順に並べ替える手順を見ていきましょう。
アルゴリズム
処理の流れは以下の3ステップです。
ステップ1:Pandasシリーズを定義する。 ステップ2:sort_values() 関数を使ってシリーズをソートする。 ステップ3:ソート後のシリーズを出力する。
サンプルコード
import pandas as pd
panda_series = pd.Series([18,15,66,92,55,989])
print("Unsorted Pandas Series: \n", panda_series)
panda_series_sorted = panda_series.sort_values(ascending = True)
print("\nSorted Pandas Series: \n", panda_series_sorted)
実行結果
Unsorted Pandas Series: 0 18 1 15 2 66 3 92 4 55 5 989 dtype: int64 Sorted Pandas Series: 1 15 0 18 4 55 2 66 3 92 5 989 dtype: int64
コードの解説
sort_values() 関数には ascending というブール値(True / False)を受け取るパラメータがあります。このパラメータの挙動は以下のとおりです。
- ascending = True:シリーズを昇順(小さい値から大きい値へ)にソートします。デフォルト値も True です。
- ascending = False:シリーズを降順(大きい値から小さい値へ)にソートします。
出力結果を見ると、元のインデックス番号(0〜5)がそのまま保持されたまま、値だけが並べ替えられていることがわかります。これは sort_values() が各要素に紐づくラベル(インデックス)を維持しながらソートを行うためです。
補足:便利なオプション
sort_values() には、他にも便利な引数が用意されています。
- inplace = True:新しいオブジェクトを作成せず、元のシリーズ自体を直接書き換えます。
- na_position = 'first' / 'last':欠損値(NaN)を先頭または末尾のどちらに配置するかを指定できます。デフォルトは 'last' です。
- ignore_index = True:ソート後にインデックスを 0 から振り直します(pandas 1.0 以降で利用可能)。
これらのオプションを組み合わせることで、データ分析の前処理などで柔軟にデータを並べ替えることができます。
-
PandasのマルチインデックスDataFrameでgroupbyを実行する方法
マルチインデックスDataFrameとは、複数のインデックス(階層的なインデックス)を持つデータフレームのことです。本記事では、マルチインデックス化されたDataFrameに対してgroupbyを使用し、特定のレベルごとに集計を行う方法を解説します。サンプルデータの準備まず、デスクトップに保存された以下のようなCSVファイル(sales.csv)を用意します。車種(Car)、地域(Place)、販売台数(UnitsSold)のデータが含まれています。最初に、pandasライブラリをインポートし、CSVファイルを読み込みます。import pandas as pd df = pd.read_c
-
PandasのSeriesデータをMatplotlibで棒グラフとして描画する方法
Matplotlibを使ってPandasのSeriesやDataFrameから棒グラフを描画するのは非常に簡単です。本記事では、基本的な手順とサンプルコードを通じて、その方法をわかりやすく解説します。 棒グラフを描画する基本手順 辞書の作成: 1から10までの範囲の値を持つ、複数のキーからなる辞書を作成します。各キーがグラフの系列名になります。 DataFrameの作成: 作成した辞書をもとに、PandasのDataFrameを生成します。 棒グラフの作成: plot()メソッドにkind=barを指定して棒グラフを描画します。 図の表示: show()メソッドを呼び出して、作成したグラフを