はじめに
この実験では、Pandas ライブラリの query() メソッドについて学びます。query() メソッドを使用すると、ブール式に基づいて DataFrame をフィルタリングできます。これは filter() メソッドと似ています。このメソッドを使用して、1 つ以上の列に基づいて DataFrame をフィルタリングしたり、'AND' 演算子を使用して複数の条件を結合したりすることができます。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使用して練習します。
場合によっては、Jupyter Notebook が読み込み完了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題が発生した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。そうすると、迅速に問題を解決します。
DataFrame の作成
まず、操作対象となる DataFrame を作成しましょう。この例では、名前、年齢、身長、体重を含む人に関する情報が格納された DataFrame を作成します。
#importing pandas as pd
import pandas as pd
#creating the DataFrame
df = pd.DataFrame({'Name': ['Chetan', 'Yashas', 'Yuvraj', 'Pooja', 'Sindu', 'Renuka'],
'Age': [19, 26, 22, 24, 21, 23],
'Height': [165, 150, 168, 157, 155, 170],
'Weight': [60, 65, 70, 50, 52, 55]})
単一列による DataFrame のフィルタリング
次に、query() メソッドを使用して、単一の列に基づいて DataFrame をフィルタリングしましょう。この例では、年齢が 23 未満の行のみを含むように DataFrame をフィルタリングします。
#filtering the DataFrame by age
filtered_df = df.query('Age < 23')
#printing the filtered DataFrame
print(filtered_df)
出力:
Name Age Height Weight
0 Chetan 19 165 60
2 Yuvraj 22 168 70
4 Sindu 21 155 52
2 つの列を比較することによる DataFrame のフィルタリング
次に、query() メソッドを使用して 2 つの列を比較することにより DataFrame をフィルタリングしましょう。この例では、「sci_Marks」列の値が「Maths_Marks」列の値より大きい行のみを含むように DataFrame をフィルタリングします。
#creating the DataFrame
df = pd.DataFrame({'Name': ['Chetan', 'Yashas', 'Yuvraj', 'Pooja','Sindu', 'Renuka'],
'sci_Marks': [85, 70, 75, 90, 95, 70],
'Maths_Marks': [82, 79, 80, 89, 92, 70]})
#filtering the DataFrame by comparing two columns
filtered_df = df.query('sci_Marks > Maths_Marks')
#printing the filtered DataFrame
print(filtered_df)
出力:
Name sci_Marks Maths_Marks
0 Chetan 85 82
3 Pooja 90 89
4 Sindu 95 92
'AND'演算子を使った DataFrame のフィルタリング
最後に、複数の条件を結合するために 'AND' 演算子を使用して DataFrame をフィルタリングしましょう。この例では、身長が 155 より高く、体重が 60 より重い行のみを含むように DataFrame をフィルタリングします。
#filtering the DataFrame by using 'AND' operator
filtered_df = df.query('Height > 155 and Weight > 60')
#printing the filtered DataFrame
print(filtered_df)
出力:
Name Age Height Weight
1 Yashas 26 150 65
2 Yuvraj 22 168 70
まとめ
おめでとうございます!この実験では、Pandas ライブラリの query() メソッドの使い方を学びました。これで、ブール式に基づいて DataFrame をフィルタリングする方法、単一の列によるフィルタリング、2 つの列を比較する方法、および複数の条件を結合するための 'AND' 演算子の使い方がわかりました。このメソッドは、Pandas DataFrame 内のデータを迅速かつ効率的にフィルタリングするのに役立ちます。練習を続け、さまざまなユースケースを探求して、query() メソッドの使用に精通しましょう。