Pandasで複数条件を使ったデータフィルタリングの実践ガイド

データ処理や分析を行う上で、Pandasライブラリは非常に強力なツールです。特に、複数の条件を使ってデータフレームをフィルタリングできることは、データ分析において欠かせない技術です。本記事では、Pandasの複数条件フィルタリングを深く掘り下げ、実践的な例を交えながらわかりやすく解説していきます。

1. Pandasの基本的な使い方

Pandasを使うには、まずライブラリをインポートする必要があります。基本的なデータフレームの生成を通じて、Pandasの基本を理解しましょう。

以下のコードは、簡単なデータフレームを作成する例です。

“`python
import pandas as pd

data = {
‘名前’: [‘山田’, ‘鈴木’, ‘佐藤’, ‘田中’],
‘年齢’: [25, 30, 28, 22],
‘職業’: [‘エンジニア’, ‘デザイナー’, ‘エンジニア’, ‘営業’]
}

df = pd.DataFrame(data)
print(df)
“`

上記のコードを実行すると、以下のようなデータフレームが出力されます。

       名前  年齢       職業
    0  山田  25  エンジニア
    1  鈴木  30  デザイナー
    2  佐藤  28  エンジニア
    3  田中  22      営業
    

2. 複数条件でのフィルタリング

Pandasでは複数条件を組み合わせてデータをフィルタリングすることが可能です。
例えば、年齢が25歳以上かつ職業がエンジニアのデータを取得する方法は以下の通りです。

“`python
filtered_df = df[(df[‘年齢’] >= 25) & (df[‘職業’] == ‘エンジニア’)]
print(filtered_df)
“`

このコードを実行すると、次のような結果が得られます。

       名前  年齢       職業
    0  山田  25  エンジニア
    2  佐藤  28  エンジニア
    

3. 条件の比較演算子の使用

フィルタリングの条件には、さまざまな比較演算子が使用できます。例えば、`==`(等しい)、`!=`(等しくない)、`>`(より大きい)、`<`(より小さい)などです。

以下は、年齢が30未満で職業がデザイナーではない人をフィルタリングする例です。

“`python
result_df = df[(df[‘年齢’] < 30) & (df[‘職業’] != ‘デザイナー’)]
print(result_df)
“`

結果は以下のようになります。

       名前  年齢       職業
    0  山田  25  エンジニア
    3  田中  22      営業
    

4. 条件によるフィルタリングの最適化

特定の条件でフィルタリングした後、さらに他の操作を行うことができます。たとえば、フィルタリング後に特定の列だけを選択することも可能です。

以下は、年齢が25歳以上のエンジニアの名前と年齢だけを抽出する例です。

“`python
optimized_df = df.loc[(df[‘年齢’] >= 25) & (df[‘職業’] == ‘エンジニア’), [‘名前’, ‘年齢’]]
print(optimized_df)
“`

抽出結果は次の通りです。

       名前  年齢
    0  山田  25
    2  佐藤  28
    

5. 複雑な条件の設定

さらに、条件を組み合わせることで、より複雑なフィルタリングが可能です。たとえば、年齢が25歳以上または職業が営業である人を取得する場合、次のように記述できます。

“`python
complex_filtered_df = df[(df[‘年齢’] >= 25) | (df[‘職業’] == ‘営業’)]
print(complex_filtered_df)
“`

出力結果は以下の通りです。

       名前  年齢       職業
    0  山田  25  エンジニア
    3  田中  22      営業
    1  鈴木  30  デザイナー
    2  佐藤  28  エンジニア
    

6. 実際の分析への応用

これでPandasを用いた複数条件のデータフィルタリングについて説明しましたが、実際のビジネスデータ分析やユーザー分析などでも非常に活用されています。例えば、顧客データの管理や製品レビューの分析において、特定の条件に基づいてデータを抽出し、視覚化することで、インサイトを得ることができます。

以下は、実際にマーケティングデータを分析する際のフィルタリング例です。

“`python
# 假设的顧客データフレーム
customer_data = {
‘顧客名’: [‘田中’, ‘山田’, ‘鈴木’, ‘佐藤’],
‘購入金額’: [1200, 2500, 3000, 1800],
‘年齢’: [33, 27, 45, 29]
}

customer_df = pd.DataFrame(customer_data)

# 年齢が30歳以上で購入金額が2500以上の顧客を抽出
targeted_customers = customer_df[(customer_df[‘年齢’] >= 30) & (customer_df[‘購入金額’] > 2500)]
print(targeted_customers)
“`

このコードを実行すると、該当する顧客のデータが抽出され、マーケティング施策のターゲティングに役立てることができます。

今回はPandasを使用した複数条件によるデータフィルタリングについて詳しく説明しました。データ分析を実施する際は、ぜひこれらのスキルを活用してみてください。これらのテクニックは、データのインサイトを深めるのに非常に有効です。