str.contains 是不是有替代代码用于一个值而不是系列?

Posted

技术标签:

【中文标题】str.contains 是不是有替代代码用于一个值而不是系列?【英文标题】:Is there alternative code for str.contains for one value instead of the series?str.contains 是否有替代代码用于一个值而不是系列? 【发布时间】:2021-07-16 10:19:01 【问题描述】:

我有一列名字和姓氏,例如:

df['clients'] = ['Mike Thompson', 'Anna Frank']

而且我有客户的姓名和姓氏,但并不总是正确的。

df['name'] = ['Mike', 'Joanna']
df['surname'] = ['Thompson', 'Brown']

我想查找未正确输入有关客户姓名和姓氏信息的行。我已经使用了这个代码

df['clients'][0].str.contains(df.name[0] | df.surname[0], nan=False, regex = True

它不工作。我读过 str.contains() 适用于系列而不是单一值。 str.contains() 是否有任何替代方案,仅适用于一个值而不适用于系列?

【问题讨论】:

请发布具有预期输出的示例数据框 您能否解释一下您所说的信息不正确是什么意思 【参考方案1】:

纯字符串操作

any(x in df['clients'][0] for x in [df.name[0], df.surname[0]]):

或者用正则表达式

import re

bool(re.search('|'.join([df.name[0], df.surname[0]]), df['clients'][0]))

【讨论】:

以上是关于str.contains 是不是有替代代码用于一个值而不是系列?的主要内容,如果未能解决你的问题,请参考以下文章

.str.contains 返回实际找到的值而不是 True 或 False

如何在 pandas str.contains 中使用 \b 单词边界?

Python 文本处理(str.contains)

如何使用str.contains函数使用行索引替换单元格值

用于包装不纯方法的效果?

如何在 Pandas 中向 .str.contains 添加多个字符串? [复制]