過濾行 – 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 |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP