過濾行 – Python Pandas


Python Pandas 中,過濾行並獲取任何特定列值可以透過多種方式完成,其中一種是使用 Pandas 的 contains() 方法。通常,此方法應用於字串型別的列,根據子字串過濾行(即透過驗證列是否包含特定子字串)。

步驟

在 Pandas 中過濾行的步驟如下所示

  • 讀取 CSV 檔案

  • 過濾行

  • 列印 DataFrame

讀取 CSV 檔案

在下面的程式碼行中,使用 pd.read_csv() 函式將資料從 CSV 檔案載入到 DataFrame 中,DataFrame 是一個二維且大小可變的結構。

dataFrame = pd.read_csv("C:\Users\amit_\Desktop\CarRecords.csv")

過濾包含特定文字的行

下面的程式碼行過濾 DataFrame,僅包含“Car”列包含文字“Lamborghini”的行。函式 .str.contains('Lamborghini') 檢查“Car”列中的每個值是否包含字串“Lamborghini”,並返回布林值(True 或 False)。

dataFrame = dataFrame[dataFrame['Car'].str.contains('Lamborghini')]

列印 DataFrame

將整個 DataFrame 列印到控制檯。最初,它將列印未過濾的 DataFrame(過濾前),過濾後,它只打印“Car”列中包含文字“Lamborghini”的行。

print("DataFrame...\n", dataFrame)

示例

import pandas as pd

# reading csv file
dataFrame = pd.read_csv("C:\Users\amit_\Desktop\CarRecords.csv")
print("DataFrame...\n", dataFrame)

# select rows containing text "Lamborghini"
dataFrame = dataFrame[dataFrame['Car'].str.contains('Lamborghini')]
print("\nFetching rows with text Lamborghini ...\n", dataFrame)

輸出

1. 原始 DataFrame

假設 CSV 檔案“CarRecords.csv”包含以下資料。

汽車 型號 年份 價格
0 蘭博基尼 Huracan 2020 240000
1 法拉利 F8 2021 280000
2 蘭博基尼 Aventador 2019 400000
3 保時捷 911 2020 150000
4 蘭博基尼 Urus 2021 200000
5 寶馬 M3 2018 70000

2. 過濾“蘭博基尼”後的 DataFrame

第二個輸出僅顯示“Car”列包含“蘭博基尼”的行。

汽車 型號 年份 價格
0 蘭博基尼 Huracan 2020 240000
2 蘭博基尼 Aventador 2019 400000
4 蘭博基尼 Urus 2021 200000

更新於:2024年9月23日

6K+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.