如何在 Pandas DataFrame 行中搜索值?
Pandas DataFrame 是資料結構的一部分,用於以表格形式(行和列)表示二維結構。在 Python 中,我們有一些內建函式,如 eq()、any()、loc[] 和 apply(),可用於在 Pandas DataFrame 行中搜索值。例如,搜尋值由任何特定資料的可用性定義。
語法
以下語法在示例中使用:
DataFrame()
這是 Python 中的內建函式,它遵循 pandas 模組並將二維行和列顯示在一個框架中。
eq()
Python 中的此 eq 方法可用於比較 Pandas DataFrame 中的每個值,以檢查它是否等於已識別的值。
any()
這也是 Python 中的內建函式,如果任何可迭代元素或專案進行迭代則返回 true,否則返回 false。
loc[]
上述方法透過將特定的行和列返回到 DataFrame 來表示。
apply()
這是 Python 中的內建函式,其作用類似於 map() 函式。如果使用者使用表格資料,它提供引數 axis = 1(行)或 0(列)。
示例 1
在以下示例中,我們將展示**如何在 DataFrame 的特定列中搜索值**。首先,匯入 pandas 模組並將引用物件作為 pd。然後建立一個名為 data 的變數,並使用字典儲存資料。然後使用內建方法 DataFrame,該方法接受名為 data 的引數以表徵表格形式的二維結構。接下來,設定列的任何值(例如 siddhu)並將其儲存在變數 search_value 中。繼續使用列表技術並檢查名為 Name 的列是否等效於 search_value,然後它將返回特定資料。所有這些過程都儲存在變數 result 中。最後,僅使用名為 result 的變數並獲取所需的結果。
import pandas as pd
# Create a DataFrame
data = {'Name': ['Bhavish', 'Abhinabh', 'Siddhu'],
'Age': [25, 32, 28]}
df = pd.DataFrame(data)
# Search for a value in the 'Name' column
search_value = 'Siddhu'
result = df[df['Name'] == search_value]
result
輸出

示例 2
在以下示例中,我們將展示**如何根據條件在特定行中搜索值**。透過匯入 pandas 模組並將引用作為 pd 來開始程式。然後使用字典建立列和行資料。接下來,使用資料框設定資料的表格結構並將其儲存在變數 df 中。然後從給定的行中選擇任何值(例如“F”)並將其儲存在變數 search_value 中。現在初始化變數 result 並存儲以使用兩個帶有 df 變數的方法,即 eq()[接受 search_value 作為引數以查詢給定的搜尋] 和 any(axis=1)[它將迭代所有行以查詢特定的搜尋]。最後,使用變數 result 並獲取結果。
import pandas as pd
# Create a DataFrame using a dictionary
data = {'Name': ['A', 'X', 'C', 'F', 'L', 'G'],
'Age': [25, 32, 18, 29, 13, 19]}
df = pd.DataFrame(data)
# Search for a value across all columns
search_value = 'F'
result = df[df.eq(search_value).any(axis=1)]
result
輸出

示例 3
在以下示例中,我們將展示**如何使用 loc[] 屬性在行中搜索多個值**。這裡,它使用 .loc[] 屬性,該屬性透過提供 search_value 返回特定的行。loc 屬性使用兩個引數 - 切片(:) 和字典(鍵值對),這將有助於搜尋特定的行。除了 loc 之外,它還使用了 eq() 和 any() 兩種方法來獲得所需的輸出。
import pandas as pd
# Create a DataFrame
data = {'Name': ['Shyam', 'Ranjan', 'Mohan', 'Raju', 'Dheeraj'],
'Age': [25, 32, 18, 22, 26],
'Designation': ['SDE', 'Tester', 'Web Devloper', 'Intern', 'HR'],
'Salary': [50000, 17000, 26000, 20000, 17000]}
df = pd.DataFrame(data)
# Search for a value within a range of columns
search_value = 17000
ans = df.loc[df.loc[:, 'Age':'Salary'].eq(search_value).any(axis=1)]
ans
輸出

示例 4
在以下示例中,我們將展示**如何使用 apply() 和 lambda 在所有行中搜索值**。這裡它使用 apply() 函式以及 lambda 函式來迭代每一行並檢查搜尋值是否出現在該行的值中:df.apply(lambda row: search_value in row.values, axis=1)。然後使用 any() 函式檢查搜尋值是否在至少一行中找到。
import pandas as pd
# Create of simple DataFrame
data = {"Name": ["Keshav", "Vishal", "Aman", "Shubham", "Amar"],
"Age": [23, 22, 24, 26, 21]}
df = pd.DataFrame(data)
# Search for the value 22 in all rows using apply() and lambda
search_value = 22
if df.apply(lambda row: search_value in row.values, axis=1).any():
print(f"{search_value} found in at least one row")
else:
print(f"{search_value} not found in any row")
輸出
22 found in at least one row
結論
我們討論了在 Pandas DataFrame 行中搜索值的各種方法。我們看到了幾個內建函式,這些函式有助於從給定資料中搜索特定的行。各個領域在其 ML 程式(如資料科學和資料分析)中使用這種型別的模組。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP