Pandas DataFrame のクエリメソッド

Beginner

はじめに

この実験では、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() メソッドの使用に精通しましょう。