在 Pandas DataFrame 中過濾資料

Fariba Laiq 2024年2月15日
  1. 基於單一條件過濾 Pandas DataFrame 中的資料
  2. 根據多個條件過濾 Pandas DataFrame 中的資料
  3. 根據多列值過濾 Pandas DataFrame 中的資料
在 Pandas DataFrame 中過濾資料

本教程將演示基於單個或多個條件過濾 Pandas DataFrame 中的資料。

布林索引意味著選擇資料子集或根據某些條件過濾資料。我們處理 DataFrame 中資料的實際值,而不是它們的行或列標籤或整數位置。

布林向量用於過濾布林索引中的資料。括號可用於對涉及運算子的多個條件進行分組,例如| (OR)、& (AND)、== (EQUAL) 和 ~ (NOT)。

基於單一條件過濾 Pandas DataFrame 中的資料

我們可以通過應用單個條件來使用單個列的值過濾資料。

在下面的程式碼中,我們有學生的資料,我們通過將單個條件應用於 Department 值來過濾記錄。只有那些係為 CS 的學生的記錄才會顯示。

示例程式碼:

# Python 3.x
import pandas as pd

df = pd.read_csv("Student.csv")
display(df)
df_filtered = df[(df["Department"] == "CS")]
display(df_filtered)

輸出:

基於單個條件過濾資料

根據多個條件過濾 Pandas DataFrame 中的資料

在某些情況下,我們還可以應用多個條件從單個列中選擇資料。

如果我們只想顯示那些分數大於 60 但小於 90 的學生的記錄,我們將使用由 & 運算子連線的多個條件。

要記住的重要一點是分別使用運算子&|~而不是 ANDORNOT

示例程式碼:

# Python 3.x
import pandas as pd

df = pd.read_csv("Student.csv")
display(df)
df_filtered = df[(df["Marks"] > 60) & (df["Marks"] < 90)]
display(df_filtered)

輸出:

根據同一列上的多個條件過濾資料

根據多列值過濾 Pandas DataFrame 中的資料

我們還可以使用基於多列值的條件過濾資料。

在下面的程式碼中,我們過濾了記錄,只顯示部門為 EE 且標記高於或等於 80 的記錄。我們使用括號對多個條件進行分組。

每當我們過濾來自多個列的資料時,我們總是應用多個條件。

示例程式碼:

# Python 3.x
import pandas as pd

df = pd.read_csv("Student.csv")
display(df)
df_filtered = df[(df["Department"] == "EE") & (df["Marks"] >= 80)]
display(df_filtered)

輸出:

基於多個條件過濾資料

作者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

相關文章 - Pandas DataFrame