PythonのPandasを使った複数条件抽出の極意

データ処理において、特定の条件に基づいてデータを絞り込むことは非常に重要です。PythonのPandasライブラリは、その柔軟性と強力なデータ操作機能のおかげで、多くのデータサイエンティストやアナリストに愛用されています。本記事では、Pandasを使用した複数の条件に基づくデータ抽出のテクニックを詳しく解説し、実際に役立つ情報や例を交えてお伝えします。

基本的なデータフレームの作成

まずは、基本的なデータフレームを作成し、具体的な条件抽出の例を見ていきましょう。以下は、年齢と収入を含むサンプルデータです。

import pandas as pd

data = {
    '名前': ['佐藤', '鈴木', '高橋', '田中', '伊藤'],
    '年齢': [25, 32, 23, 45, 29],
    '収入': [500, 600, 450, 700, 650]
}

df = pd.DataFrame(data)

このデータフレームは、5人の名前、年齢、および収入を含んでいます。次のステップでは、複数の条件を使ってデータを抽出します。

条件1: 年齢が30歳以上かつ収入が600以上の人を抽出

Pandasでは、複数の条件は`&`(かつ)や`|`(または)を用いて組み合わせます。以下のコードを使って、年齢が30歳以上で、かつ収入が600以上の人をフィルタリングしてみましょう。

filtered_df = df[(df['年齢'] >= 30) & (df['収入'] >= 600)]
print(filtered_df)

このコードを実行すると、条件を満たす行のみが抽出されます。このように、条件を結合することで、より特定のデータを得ることができます。

条件2: 年齢が30歳未満または収入が650以上の人を抽出

次に、年齢が30歳未満または収入が650以上の人を抽出してみましょう。条件を変えることで、非常に柔軟にデータを取得できます。

filtered_df = df[(df['年齢'] < 30) | (df['収入'] >= 650)]
print(filtered_df)

この結果から、年齢または収入に基づいて異なる条件でデータを取得できることが理解できます。いくつかの異なる条件を試すことで、データに対する新たな洞察を得ることも可能です。

条件3: 複数の列にまたがる条件抽出

特定の列に対する条件だけでなく、複数の列に跨って条件を設けることも可能です。例えば、名前が「佐藤」で年齢が25歳である人を抽出する場合、次のように記述します。

filtered_df = df[(df['名前'] == '佐藤') & (df['年齢'] == 25)]
print(filtered_df)

この例では特定の名前と年齢に基づいてデータを取ってきています。このような具体的な条件を使用すると、データ抽出がよりターゲットを絞ったものになります。

条件4: 複雑な条件の組み合わせ

Pandasは、条件を複雑に組み合わせることもサポートしています。例えば、「年齢が30歳以上で収入が650以上」または「年齢が25歳以上で名前が「鈴木」である」人を取得する場合、以下のように記述します。

filtered_df = df[((df['年齢'] >= 30) & (df['収入'] >= 650)) | ((df['年齢'] >= 25) & (df['名前'] == '鈴木')))]
print(filtered_df)

このような複雑な条件を指定することで、必要なデータを精確に抽出することができます。データ分析を行う際には、様々な条件を駆使して有用な情報を引き出すことが大切です。

条件5: 関数を使ったカスタム抽出

条件が複雑になってきた場合、カスタム関数を定義して、特定の条件を基にデータをフィルタリングすることが有効です。以下のコードでは、年齢が35歳以上で、かつ収入が700以上であるかどうかを判断する関数を作成します。

def custom_filter(row):
    return row['年齢'] >= 35 and row['収入'] >= 700

filtered_df = df[df.apply(custom_filter, axis=1)]
print(filtered_df)

このアプローチは、より複雑なロジックを必要とする場合に特に便利です。カスタム関数を用いることで、特定のビジネス要件に基づいたデータ抽出が可能になります。

まとめ

Pandasを使用することで、データの抽出や分析が非常にシンプルかつ効果的に行えることがわかりました。本記事で紹介した複数条件によるデータ抽出技術を活用すれば、データに基づいた意思決定を行う際に大いに役立つでしょう。

これらのテクニックを試すことで、データ分析のスキルをさらに向上させ、ビジネスや研究において新たな洞察を得られることを願っています。