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

更新于:2023-07-17

3K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告