如何在 Pandas DataFrame 行中搜索值?

pandaspythonserver side programmingprogramming

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


相关文章