データ処理や分析を行う上で、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を使用した複数条件によるデータフィルタリングについて詳しく説明しました。データ分析を実施する際は、ぜひこれらのスキルを活用してみてください。これらのテクニックは、データのインサイトを深めるのに非常に有効です。