どうもニコイチです。前回可視化を行いましたが、実際のデータを取り扱う時にはフィルタリングすることで必要なデータのみ確認することができるため、不要な情報を省くことができます。そこで今回は、フィルタリングについてご紹介します。
全編はこちらから
Pythonでデータ分析を始めよう!初心者向けガイド | いきかちガジェットゲームLab:ガジェット・ゲーム・DX
どうもニコイチです。今回はdemoデータを使って実際に予測モデルを作れるようになることを目的とした、シリーズをご紹介します。Pyhonってなに?どうやってつかうの?と戸惑って…
目次
1. フィルタリングとは?
基本概念
フィルタリングとは、条件に合うデータだけを取り出すことです。
📌 例え話:
- お米をとぐときにザルを使うように、データの中から必要なものだけを取り出します
- 図書館で「2000年以降の本」や「小説のみ」と絞り込むようなイメージです
2. 基本的なフィルタリング操作
データの準備
import pandas as pd
# データの読み込み
df = pd.read_csv('定期貯金契約データ.csv')
単純な条件でのフィルタリング
1. 等しい(==)
# 例:男性の顧客だけを抽出
men_customers = df[df['性別'] == '男性']
👉 使い所:特定の値のみを選びたい時
- 例:30歳の人だけ
- 例:東京在住の人だけ
2. 異なる(!=)
# 例:女性以外の顧客を抽出
not_women = df[df['性別'] != '女性']
👉 使い所:特定の値以外を選びたい時
- 例:東京以外に住んでいる人
- 例:未婚以外の人
3. より大きい(>)、以上(>=)
# 例:40歳より上の顧客
older_than_40 = df[df['年齢'] > 40]
# 例:40歳以上の顧客
age_40_and_above = df[df['年齢'] >= 40]
4. より小さい(<)、以下(<=)
# 例:30歳未満の顧客
under_30 = df[df['年齢'] < 30]
複数の条件を組み合わせる
AND条件(&)
# 例:30歳以上かつ男性の顧客
men_over_30 = df[(df['年齢'] >= 30) & (df['性別'] == '男性')]
⚠️ 注意点:
- 各条件を()で囲むことを忘れずに!
and
ではなく&
を使う
OR条件(|)
# 例:20歳未満または60歳以上の顧客
young_or_senior = df[(df['年齢'] < 20) | (df['年齢'] >= 60)]
⚠️ 注意点:
- 各条件を()で囲むことを忘れずに!
or
ではなく|
を使う
特定のカラムだけを選択
# 例:40歳以上の顧客の契約金額のみを表示
amount_over_40 = df[df['年齢'] >= 40]['契約金額']
3. 実践的な例題
例1:高額契約者の分析
# 契約金額が100万円以上の顧客を抽出
high_value = df[df['契約金額'] >= 1000000]
# その中から年齢と性別だけを表示
print(high_value[['年齢', '性別']])
例2:若年層の契約状況
# 30歳未満で契約期間が2年以上の顧客
young_long_term = df[(df['年齢'] < 30) & (df['契約期間'] >= 24)]
4. よくあるつまずきポイント
1. 条件式の括弧忘れ
❌ 間違い:
df[df['年齢'] >= 30 & df['性別'] == '男性']
✅ 正しい:
df[(df['年齢'] >= 30) & (df['性別'] == '男性')]
2. 文字列と数値の比較
❌ 間違い:
df[df['性別'] == "男性"] # ダブルクォート
✅ 正しい:
df[df['性別'] == '男性'] # シングルクォート推奨
3. 複数条件でのand
/or
の使用
❌ 間違い:
df[df['年齢'] >= 30 and df['性別'] == '男性']
✅ 正しい:
df[(df['年齢'] >= 30) & (df['性別'] == '男性')]
5. 実践的なコツ
1. フィルタリング結果の確認
# フィルタリング後のデータ数を確認
filtered_df = df[df['年齢'] >= 30]
print(f"フィルタリング前: {len(df)} 行")
print(f"フィルタリング後: {len(filtered_df)} 行")
2. 条件の段階的な適用
# 複雑な条件は段階的に適用する
temp_df = df[df['年齢'] >= 30] # まず年齢で絞る
final_df = temp_df[temp_df['性別'] == '男性'] # 次に性別で絞る
まとめ
- フィルタリングは条件に合うデータを抽出する機能
- 基本的な比較演算子(==, !=, >, >=, <, <=)を使用
- 複数条件は&(AND)や|(OR)で組み合わせ
- 条件式は必ず()で囲む
- 結果の確認を忘れずに行う
コメント