如何在 Pandas DataFrame 行中搜索值?
Pandas DataFrame 是数据结构的一部分,用于以表格形式(行和列)表示二维结构。在 Python 中,我们有一些内置函数,如 eq()、any()、loc[] 和 apply(),可用于在 Pandas DataFrame 行中搜索值。例如,搜索值由任何特定数据的可用性定义。
语法
示例中使用了以下语法 -
DataFrame()
这是 Python 中的一个内置函数,它遵循 pandas 模块并将 2D 行和列显示到单个框架中。
eq()
Python 中的这个 eq 方法可用于比较 pandas DataFrame 中的每个值,以检查它是否等于已识别的值。
any()
这也是 Python 中的一个内置函数,如果任何可迭代元素或项目迭代,则返回 true,否则返回 false。
loc[]
上述方法通过将特定的行和列返回到 DataFrame 来表示。
apply()
这是 Python 中的内置函数,其作用类似于 map() 函数。如果用户使用表格数据,它提供参数 axis = 1(行)或 0(列)。
示例 1
在下面的例子中,我们将展示如何在 DataFrame 的特定列中搜索值。首先,导入 pandas 模块并将引用对象作为 pd。然后创建一个名为 data 的变量并使用字典存储数据。然后使用接受名为 data 的参数的内置方法 DataFrame 来表征表格形式的 2D 结构。接下来,设置列的任何值(例如 siddhu)并将其存储在变量 search_value 中。继续使用列表技术并检查名为 Name 的列是否等同于 search_value,然后返回特定数据。所有这些过程都存储在变量 result 中。最后,仅使用名为 result 的变量并获得所需的结果。
import pandas as pd # 创建 DataFrame data = {'Name': ['Bhavish', 'Abhinabh', 'Siddhu'], 'Age': [25, 32, 28]} df = pd.DataFrame(data) # 在"Name"列中搜索值 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 # 使用字典创建DataFrame data = {'Name': ['A', 'X', 'C', 'F', 'L', 'G'], 'Age': [25, 32, 18, 29, 13, 19]} df = pd.DataFrame(data) # 在所有列中搜索某个值 search_value = 'F' result = df[df.eq(search_value).any(axis=1)] result
输出
示例 3
在下面的示例中,我们将展示如何使用 loc[] 属性在一行中搜索多个值。在这里,它使用 .loc[] 属性,该属性通过提供 search_value 返回特定行。loc 属性使用两个参数 - slicing(:) 和 dictionary(键与值对)来帮助搜索特定行。除了 loc 之外,它还使用了另外两种方法,即 eq() 和 any() 来获取所需的输出。
import pandas as pd # 创建 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_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 # 创建简单的 DataFrame data = {"Name": ["Keshav", "Vishal", "Aman", "Shubham", "Amar"], "Age": [23, 22, 24, 26, 21]} df = pd.DataFrame(data) # 使用 apply() 和 lambda 在所有行中搜索值 22 search_value = 22 if df.apply(lambda row: search_value in row.values, axis=1).any(): print(f"{search_value} 至少在一行中找到") else: print(f"{search_value} 在任何行中均未找到")
输出
至少在一行中找到 22
结论
我们讨论了在 Pandas DataFrame 行中搜索值的各种方法。我们看到了几个内置函数,它们有助于从给定的数据中搜索特定行。各种领域在其 ML 程序中使用这种类型的模块,例如数据科学和数据分析。