Pandas DataFrame のクエリメソッド

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Pandas ライブラリの query() メソッドについて学びます。query() メソッドを使用すると、ブール式に基づいて DataFrame をフィルタリングできます。これは filter() メソッドと似ています。このメソッドを使用して、1 つ以上の列に基づいて DataFrame をフィルタリングしたり、'AND' 演算子を使用して複数の条件を結合したりすることができます。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使用して練習します。

場合によっては、Jupyter Notebook が読み込み完了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題が発生した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。そうすると、迅速に問題を解決します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL pandas(("Pandas")) -.-> pandas/ReadingDataGroup(["Reading Data"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) pandas(("Pandas")) -.-> pandas/DataSelectionGroup(["Data Selection"]) pandas/ReadingDataGroup -.-> pandas/read_csv("Read CSV") pandas/ReadingDataGroup -.-> pandas/read_excel("Read Excel") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") pandas/DataSelectionGroup -.-> pandas/select_rows("Select Rows") pandas/DataSelectionGroup -.-> pandas/conditional_selection("Conditional Selection") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") python/DataScienceandMachineLearningGroup -.-> python/data_analysis("Data Analysis") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills pandas/read_csv -.-> lab-68705{{"Pandas DataFrame のクエリメソッド"}} pandas/read_excel -.-> lab-68705{{"Pandas DataFrame のクエリメソッド"}} python/conditional_statements -.-> lab-68705{{"Pandas DataFrame のクエリメソッド"}} pandas/select_rows -.-> lab-68705{{"Pandas DataFrame のクエリメソッド"}} pandas/conditional_selection -.-> lab-68705{{"Pandas DataFrame のクエリメソッド"}} python/importing_modules -.-> lab-68705{{"Pandas DataFrame のクエリメソッド"}} python/data_collections -.-> lab-68705{{"Pandas DataFrame のクエリメソッド"}} python/data_analysis -.-> lab-68705{{"Pandas DataFrame のクエリメソッド"}} python/data_visualization -.-> lab-68705{{"Pandas DataFrame のクエリメソッド"}} end

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