Skip to content

6. データの選択・抽出・フィルタリング

pandas はデータサイエンスにおいて非常に重要なツールであり、データの選択や抽出、フィルタリングは頻繁に使用される操作の一つです。このセクションでは、pandas を用いてデータを効率的に操作する方法について紹介します。

6.1 データの選択

データを選択する方法はいくつかありますが、特に重要なのはラベルや位置を指定して選択する方法です。

6.1.1 ラベルを使った選択

locメソッドを使って、インデックスラベルを指定してデータを選択します。

import pandas as pd

# サンプルデータフレームの作成
data = {'氏名': ['山田', '佐藤', '鈴木'],
        '年齢': [28, 22, 35],
        '職業': ['教師', 'エンジニア', 'デザイナー']}
df = pd.DataFrame(data)

# ラベルを使った選択
選択されたデータ = df.loc[0, '氏名']
print(選択されたデータ)  # 出力: 山田

6.1.2 位置を使った選択

ilocメソッドを使って、整数位置インデックスを指定してデータを選択します。

# 位置を使った選択
選択されたデータ = df.iloc[1, 1]
print(選択されたデータ)  # 出力: 22

6.2 条件に基づくデータの抽出

特定の条件に基づいてデータを抽出する際には、ブールインデックスを使用します。

# 年齢が30以上のデータを抽出
フィルタリングされたデータ = df[df['年齢'] >= 30]
print(フィルタリングされたデータ)

6.3 複合条件でのフィルタリング

複数の条件を併用してデータをフィルタリングすることも可能です。&(AND 演算子)や|(OR 演算子)を使います。

6.3.1 AND 条件

# 年齢が30以上で職業がデザイナー
条件 = (df['年齢'] >= 30) & (df['職業'] == 'デザイナー')
フィルタリングされたデータ = df[条件]
print(フィルタリングされたデータ)

6.3.2 OR 条件

# 年齢が30以上または職業が教師
条件 = (df['年齢'] >= 30) | (df['職業'] == '教師')
フィルタリングされたデータ = df[条件]
print(フィルタリングされたデータ)

これらの操作により、必要な情報を素早く抽出し、データの分析を効率化することができます。実際にコードを実行して試してみましょう。どのようにデータが抽出されるのか、実践を通じて理解を深めてください。