ブール条件で行をフィルタリングする
このステップでは、最も基本的なフィルタリング手法であるブールインデックス(boolean indexing)を学びます。この方法では、TrueとFalseの値を持つ Pandas Series を返すブール条件を作成します。この Series を DataFrame に渡すと、値がTrueである行のみが返されます。
まず、30 歳を超えるすべての従業員を見つけるために、DataFrame をフィルタリングしてみましょう。
最初に、左側のエディタでmain.pyファイルを開きます。ファイルにはサンプル DataFrame が事前に入力されています。
次に、main.pyの下部にある既存のprintステートメントを以下のコードに置き換えます。このコードは、ブール条件df['Age'] > 30を作成し、それを使用して DataFrame をフィルタリングします。
## Filter for employees older than 30
older_than_30 = df[df['Age'] > 30]
print("Employees older than 30:")
print(older_than_30)
これで、完全なmain.pyファイルは以下のようになります。
import pandas as pd
import numpy as np
## Create a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank'],
'Department': ['HR', 'HR', 'Sales', 'IT', 'IT', 'Finance'],
'Age': [25, 45, 38, 52, 29, 33],
'Salary': [50000, 80000, 75000, 95000, 62000, np.nan]
}
df = pd.DataFrame(data)
## Filter for employees older than 30
older_than_30 = df[df['Age'] > 30]
print("Employees older than 30:")
print(older_than_30)
それでは、スクリプトを実行しましょう。ターミナルを開き、次のコマンドを実行します。
python3 main.py
以下のような出力が表示され、年齢が 30 歳を超える従業員のみがリストされます。
Employees older than 30:
Name Department Age Salary
1 Bob HR 45 80000.0
2 Charlie Sales 38 75000.0
3 David IT 52 95000.0
5 Frank Finance 33 NaN