pandasのsortメソッドを徹底解説!使い方と注意点を分かりやすく紹介

pandasのsortメソッドは、データの並べ替えを行うための重要な関数です。本記事では、sortメソッドの使い方と注意点について詳しく説明します。

sortメソッドの種類と基本的な使い方について

pandasのsortメソッドには、以下の2種類があります。

  • sort_values()
  • sort_index()

これらのメソッドは、それぞれ異なる方法でデータの並べ替えを行います。基本的な使い方については、次節以降で詳しく説明します。

要素でソートするsort_values()について

sort_values()メソッドは、DataFrameやSeriesの要素に基づいてデータの並べ替えを行います。以下は、基本的な使い方の例です。この例では、dfを年齢列で昇順にソートしています。

import pandas as pd

df = pd.DataFrame({
    '名前': ['山田', '鈴木', '田中', '佐藤'],
    '年齢': [32, 25, 47, 19]
})

# 年齢で昇順にソート
df_sorted = df.sort_values('年齢')

print(df_sorted)

実行結果

   名前  年齢
3  佐藤  19
1  鈴木  25
0  山田  32
2  田中  47

インデックスでソートするsort_index()について

sort_index()メソッドは、DataFrameやSeriesのインデックスに基づいてデータの並べ替えを行います。以下は、基本的な使い方の例です。この例では、df DataFrameをインデックスで昇順にソートしています。

import pandas as pd

df = pd.DataFrame({
    '名前': ['山田', '鈴木', '田中', '佐藤'],
    '年齢': [32, 25, 47, 19]
}, index=[3, 1, 2, 0])

# インデックスで昇順にソート
df_sorted = df.sort_index()

print(df_sorted)

実行結果

   名前  年齢
0  佐藤  19
1  鈴木  25
2  田中  47
3  山田  32

3. sort()とsorted()との違いについて

pandasのsort()メソッドは、インデックスまたは列名に基づいてデータフレームを並べ替えます。sorted()はPythonの組み込み関数で、リストやタプルなどのIterableを並べ替えます。sort()とsorted()の主な違いは、sort()は元のデータフレームを破壊的に変更するのに対し、sorted()は新しいソート済みのオブジェクトを返すことです。

import pandas as pd

df = pd.DataFrame({
    '名前': ['山田', '鈴木', '田中', '佐藤'],
    '年齢': [32, 25, 47, 19]
}, index=[3, 1, 2, 0])

df_sort = df.sort_values(by='年齢')

print(df_sort)

# sort()ではこのように書く
df.sort_values(by='年齢', inplace=True)

lst = [3, 2, 1, 0]
lst_sorted = sorted(lst)

print(lst) # [3, 2, 1, 0]
print(lst_sorted) # [0, 1, 2, 3]

Pandas.sortの注意点

注意点は以下のとおりです。

  • sortメソッドは、データフレームの内容を変更するため注意が必要です。
  • データに欠損値が含まれている場合、ソートの結果に不正確さが出ることがあります。

関連記事の紹介

pandasのsortメソッドに関連する他の記事を紹介します。

pandasのmergeについての解説
Pandasでpivot_tableを作成する方法

まとめと注意点

pandasのsortメソッドは、データフレームやSeriesの要素やインデックスに基づいたデータの並べ替えを行うための重要な関数です。ただし、データを変更するため注意が必要です。また、ソートしたい列がない場合や欠損値が含まれる場合には、エラーが発生することがあります。これらの注意点に留意しながら、sortメソッドを使用することが大切です。

コメント

タイトルとURLをコピーしました