Pythonでデータをソート・フィルタリングする

データ分析や業務システムの開発では、大量のデータの中から必要な情報を素早く見つけることが重要です。その際によく利用されるのが「ソート」と「フィルタリング」です。ソートはデータを指定した順番に並べ替える処理であり、フィルタリングは条件に一致するデータだけを抽出する処理です。

Pythonでは、Pandasライブラリを利用することで、少ないコードで効率的にデータを整理できます。売上データや顧客情報、ログデータなどさまざまなデータに対して活用できるため、データ分析の基本スキルとして身につけておきたい機能です。

本記事では、Pandasを使用したデータのソートとフィルタリングの基本的な方法について解説します。

サンプルデータを作成する

まずはソートやフィルタリングの対象となるデータを作成します。

import pandas as pd

df = pd.DataFrame({
    "名前": ["田中", "佐藤", "鈴木", "高橋"],
    "年齢": [25, 32, 28, 40],
    "売上": [1500, 3000, 2500, 2000]
})

print(df)

このデータを利用して並べ替えや抽出を行います。

データをソートする

売上順に並べ替えるにはsort_values()を使用します。

df_sorted = df.sort_values(by="売上")

print(df_sorted)

デフォルトでは昇順で並びます。

降順で並べ替えたい場合はascending=Falseを指定します。

df_sorted = df.sort_values(
    by="売上",
    ascending=False
)

print(df_sorted)

売上の高い順にデータを確認したい場合に便利です。

条件を指定してフィルタリングする

年齢が30歳以上のデータだけを取得する例です。

result = df[df["年齢"] >= 30]

print(result)

条件に一致した行だけが抽出されます。

複数条件でフィルタリングする

年齢が30歳以上かつ売上が2000以上のデータを取得する場合は、条件を組み合わせます。

result = df[
    (df["年齢"] >= 30) &
    (df["売上"] >= 2000)
]

print(result)

複数条件を利用することで、より詳細なデータ分析が可能になります。

文字列でフィルタリングする

特定の名前を持つデータだけを取得することもできます。

result = df[df["名前"] == "佐藤"]

print(result)

顧客名や商品名などを条件に検索したい場合に活用できます。

まとめ

PythonのPandasでは、sort_values()を利用してデータを並べ替え、条件式を利用してフィルタリングを行えます。これらの機能はデータ分析や業務データの集計で頻繁に利用されるため、基本操作として習得しておくことが重要です。まずは単一条件から始めて、複数条件による抽出やさまざまな並べ替え方法に挑戦してみましょう。