dask.dataframe.Series.str.contains

dask.dataframe.Series.str.contains

dataframe.Series.str.contains(pat, case: bool = True, flags: int = 0, na=None, regex: bool = True)

测试模式或正则表达式是否包含在 Series 或 Index 的字符串中。

此文档字符串是从 pandas.core.strings.accessor.StringMethods.contains 复制而来的。

Dask 版本可能存在一些不一致性。

返回布尔型 Series 或 Index,基于给定的模式或正则表达式是否包含在 Series 或 Index 的字符串中。

参数
patstr

字符序列或正则表达式。

案例bool, 默认 True

如果为真,区分大小写。

标志int, 默认值为 0 (无标志)

传递给 re 模块的标志,例如 re.IGNORECASE。

na标量,可选

填充缺失值的填充值。默认值取决于数组的 dtype。对于 object-dtype,使用 numpy.nan。对于 StringDtype,使用 pandas.NA

正则表达式bool, 默认 True

如果为真,则假设路径是正则表达式。

如果为 False,则将 pat 视为字面字符串。

返回
布尔值的序列或索引

一个布尔值的序列或索引,指示给定的模式是否包含在序列或索引的每个元素的字符串中。

参见

match

类似的,但更严格,依赖于 re.match 而不是 re.search。

Series.str.startswith

测试每个字符串元素的开头是否匹配某个模式。

Series.str.endswith

与 startswith 相同,但测试字符串的结尾。

示例

仅使用字面模式返回一系列布尔值。

>>> s1 = pd.Series(['Mouse', 'dog', 'house and parrot', '23', np.nan])  
>>> s1.str.contains('og', regex=False)  
0    False
1     True
2    False
3    False
4      NaN
dtype: object

仅使用字面模式返回布尔值索引。

>>> ind = pd.Index(['Mouse', 'dog', 'house and parrot', '23.0', np.nan])  
>>> ind.str.contains('23', regex=False)  
Index([False, False, False, True, nan], dtype='object')

使用 case 指定区分大小写。

>>> s1.str.contains('oG', case=True, regex=True)  
0    False
1    False
2    False
3    False
4      NaN
dtype: object

指定 naFalse 而不是 NaN 会将 NaN 值替换为 False。如果 Series 或 Index 不包含 NaN 值,结果的 dtype 将是 bool,否则将是 object dtype。

>>> s1.str.contains('og', na=False, regex=True)  
0    False
1     True
2    False
3    False
4    False
dtype: bool

当字符串中出现任意表达式时,返回 ‘house’ 或 ‘dog’。

>>> s1.str.contains('house|dog', regex=True)  
0    False
1     True
2     True
3    False
4      NaN
dtype: object

使用 flags 在正则表达式中忽略大小写敏感性。

>>> import re  
>>> s1.str.contains('PARROT', flags=re.IGNORECASE, regex=True)  
0    False
1    False
2     True
3    False
4      NaN
dtype: object

使用正则表达式返回任意数字。

>>> s1.str.contains('\\d', regex=True)  
0    False
1    False
2    False
3     True
4      NaN
dtype: object

regex 设置为 True 时,确保 pat 不是一个字面模式。注意在下面的例子中,人们可能期望只有 s2[1]s2[3] 返回 True。然而,’.0’ 作为正则表达式匹配任何字符后跟一个 0。

>>> s2 = pd.Series(['40', '40.0', '41', '41.0', '35'])  
>>> s2.str.contains('.0', regex=True)  
0     True
1     True
2    False
3     True
4    False
dtype: bool