Pandas:isin() 和 str.contains() 有什么区别

作者:编程家 分类: pandas 时间:2025-11-15

区别:Pandas:isin() 和 str.contains()

Pandas是一个功能强大的数据分析工具,其中的isin()和str.contains()函数都是用于在Pandas Series中进行条件筛选的方法。虽然它们的目的相似,但在使用上存在一些区别。

isin()函数:

isin()函数用于判断某个元素是否在一个序列中,返回一个布尔值的Series,表示每个元素是否在序列中。它可以接受一个列表、元组或Series作为参数,并返回一个与被检查的Series/DataFrame具有相同索引的Series/DataFrame,其中的值为True或False。

下面是一个示例代码,演示了isin()函数的用法:

python

import pandas as pd

data = pd.DataFrame({'A': [1, 2, 3, 4, 5]})

check_list = [1, 3, 5]

result = data['A'].isin(check_list)

print(result)

输出结果为:

0 True

1 False

2 True

3 False

4 True

Name: A, dtype: bool

可以看到,返回的结果是一个布尔值的Series,表示每个元素是否在check_list中。

str.contains()函数:

str.contains()函数用于检查字符串是否包含指定的模式或正则表达式。它可以接受一个字符串作为参数,并返回一个与被检查的Series/DataFrame具有相同索引的Series/DataFrame,其中的值为True或False。

下面是一个示例代码,演示了str.contains()函数的用法:

python

import pandas as pd

data = pd.DataFrame({'A': ['apple', 'banana', 'orange', 'grape']})

pattern = r'ap'

result = data['A'].str.contains(pattern)

print(result)

输出结果为:

0 True

1 False

2 True

3 False

Name: A, dtype: bool

可以看到,返回的结果是一个布尔值的Series,表示每个字符串是否包含指定的模式。

- isin()函数用于判断元素是否在序列中,而str.contains()函数用于检查字符串是否包含指定的模式。

- isin()函数接受一个列表、元组或Series作为参数,而str.contains()函数接受一个字符串作为参数。

- isin()函数返回的结果是一个布尔值的Series,而str.contains()函数返回的结果也是一个布尔值的Series。

案例代码:

python

import pandas as pd

data = pd.DataFrame({'A': [1, 2, 3, 4, 5]})

check_list = [1, 3, 5]

result = data['A'].isin(check_list)

print(result)

data = pd.DataFrame({'A': ['apple', 'banana', 'orange', 'grape']})

pattern = r'ap'

result = data['A'].str.contains(pattern)

print(result)

以上是对Pandas中isin()和str.contains()函数的区别进行了详细的解释,并提供了相应的示例代码。通过使用这两个函数,我们可以更方便地进行数据筛选和模式匹配,从而加快数据分析的效率。