如何检查 Pandas 列是否具有字符串列表中的值?
在 pandas 库中,我们以行和列的形式创建数据。列可以是字符串数据类型。字符串列表表示包含字符串元素的列表。
Pandas 是 Python 中的库之一,缩写为 Python 数据分析库。它用于执行数据分析、数据清理、数据处理和科学计算。pandas 库中的数据以列和行表示。它有许多函数和模块用于执行数据分析和操作。
Python 提供了不同的方法来检查 pandas 列是否具有字符串类型列表中的值。让我们一一看看每种方法。
使用 dataframe() 函数
首先,让我们创建带有列和行的示例数据框。以下是代码。
import pandas as pd dic = {"Name":["Anil","Srivatsav","Prasad","Mitra"], "Class":[10,30,20,50], "subject":["python","Java","c","Android"]} data = pd.DataFrame(dic) print(data.head())
输出
以下是使用 pandas 创建的数据框 –
Name Class subject 0 Anil 10 python 1 Srivatsav 30 Java 2 Prasad 20 c 3 Mitra 50 Android
使用 isin() 函数
isin() 是 pandas 库中提供的函数,用于检查 DataFrame 或 Series 中的元素是否存在于给定的列表、元组或数组对象中。以下是使用 isin() 函数的语法。
DataFrame.isin(elements)
示例
在此示例中,我们将通过将字符串列表作为输入参数传递,将 isin() 函数应用于所需列。
import pandas as pd dic = {"Name":["Anil","Srivatsav","Prasad","Mitra"], "Class":[10,30,20,50], "subject":["python","Java","c","Android"]} data = pd.DataFrame(dic) data.isin(["Anil","Srivatsav","Java"]) print(data.head())
输出
上述程序的输出如下 –
Name Class subject 0 Anil 10 python 1 Srivatsav 30 Java 2 Prasad 20 c 3 Mitra 50 Android
使用 numpy isin() 函数
NumPy 库提供了 isin() 函数,该函数与 pandas 库的 isin() 函数类似。我们可以传递任何 Python 对象,例如列表、元组或数组对象等,并检查给定对象的内容是否存在于当前数据集中。
np.isin(DataFrame,elements)
其中,
numpy 和 pandas 是库
isin 是 numpy 中可用的函数
elements是输入数据
DataFrame 是二维标记数据
示例
在此示例中,我们将使用NumPy 库的 isin() 函数用于检查 pandas 列是否具有来自字符串列表的值。
import pandas as pd import numpy as np dic = {"Name":["Anil","Srivatsav","Prasad","Mitra"], "Class":[10,30,20,50], "subject":["python","Java","c","Android"]} data = pd.DataFrame(dic) output = np.isin(data["Name"],["Anil","Srivatsav"]) print(output)
输出
以下是 Numpy 库的 isin 函数的输出。
[ True True False False]
示例
让我们看另一个示例,使用 NumPy 库的 isin() 函数检查 pandas 列是否具有来自字符串列表的值。
import pandas as pd import numpy as np dic = {"Name":["Anil","Srivatsav","Prasad","Mitra"], "Class":[10,30,20,50], "subject":["python","Java","c","Android"]} data = pd.DataFrame(dic) output = np.isin([data["Name"],data["subject"]],["Anil","Srivatsav"]) print(output)
输出
[[ True True False False] [False False False False]]