如何在 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 程序(如数据科学和数据分析)中使用这种类型的模块。