Python
 Computer >> コンピューター >  >> プログラミング >> Python

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 以降で利用可能)。

これらのオプションを組み合わせることで、データ分析の前処理などで柔軟にデータを並べ替えることができます。

  1. PandasのマルチインデックスDataFrameでgroupbyを実行する方法

    マルチインデックスDataFrameとは、複数のインデックス(階層的なインデックス)を持つデータフレームのことです。本記事では、マルチインデックス化されたDataFrameに対してgroupbyを使用し、特定のレベルごとに集計を行う方法を解説します。サンプルデータの準備まず、デスクトップに保存された以下のようなCSVファイル(sales.csv)を用意します。車種(Car)、地域(Place)、販売台数(UnitsSold)のデータが含まれています。最初に、pandasライブラリをインポートし、CSVファイルを読み込みます。import pandas as pd df = pd.read_c

  2. PandasのSeriesデータをMatplotlibで棒グラフとして描画する方法

    Matplotlibを使ってPandasのSeriesやDataFrameから棒グラフを描画するのは非常に簡単です。本記事では、基本的な手順とサンプルコードを通じて、その方法をわかりやすく解説します。 棒グラフを描画する基本手順 辞書の作成: 1から10までの範囲の値を持つ、複数のキーからなる辞書を作成します。各キーがグラフの系列名になります。 DataFrameの作成: 作成した辞書をもとに、PandasのDataFrameを生成します。 棒グラフの作成: plot()メソッドにkind=barを指定して棒グラフを描画します。 図の表示: show()メソッドを呼び出して、作成したグラフを