当前位置: 首页 > 知识库问答 >
问题:

检查值是否包含多个单词或字符串中的任何一个

华炜
2023-03-14

我有一个包含字符串的列。

(我以检查字符串是否在数据帧中为例)

BabyDataSet=[(《鲍勃和马丁与安德鲁》,968)、(《杰西卡和茱莉亚与安东尼》,155)、(《玛丽和约翰》,77)、(《约翰》,578)、(《梅尔和黛安娜》,973)、(《马丁-鲍勃-黛安娜与安德鲁》,968)]

a=pd.DataFrame(data=BabyDataSet,columns=['Names','nations'])

给一个像“martin andrew bob”这样的字符串,我想过滤DF以获得subDF,其中的行包含该字符串的所有单词(以任何顺序和大小写)。

最好的方式是什么?我的解决方案将涉及一个for循环,将掩码添加为布尔值列表,但这个解决方案在我看来似乎很麻烦。

共有1个答案

上官树
2023-03-14

这是我的建议:

my_str = 'martin andrew bob'

a[a['Names'].str.lower()
            .str.split()
            .apply(set(my_str.lower().split()).issubset)
 ].reset_index(drop=True)

输出:

                          Names  Births
0     Bob and martin and Andrew     968
1   martin bob diana and Andrew     968

我正在将lower()函数添加到我的字符串中,但如果您确定字符串总是以小写形式给出,则可以跳过它。

 类似资料:
  • 问题内容: 那么,如何检查字符串中是否包含特定单词? 这是我的代码: 我遇到了错误。 问题答案: 并不像他们所说的那么复杂,选中此选项您不会后悔。 您可以根据需要更改。

  • 问题内容: 这是一个聊天页面。我有一个。我有BADWORDS的数组:。我如何检查是否包含中的任何单词? 到目前为止,我有: 除非我这样做,否则当用户在列表中键入单词时,输出为NO!其次是!因此出于某种原因,代码会将其运行两次。 问题答案: 在不浪费时间和使用这些古老而又漫长的解决方案的情况下,最好的选择应该是: 如果这对您有用,请别忘了投票

  • 问题内容: 伪代码 我正在寻找一个PHP函数,如果单词在文本中存在,该函数将返回true。 问题答案: 您可以根据需要选择几种方法。对于这个简单的示例,可能是最简单,最直接的函数。如果您需要对结果进行处理,则可以选择或。如果您需要使用复杂的图案而不是字符串作为针,您将需要。 strpos()和stripos()方法(stripos()不区分大小写): strstr()和stristr()方法(st

  • 问题内容: 这个问题的答案是 社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 考虑: 假设我有上面的代码,编写该语句的正确方法是什么? 问题答案: 您可以使用该函数来查找另一个字符串中另一个字符串的出现: 注意,of的使用是故意的(既不会也不返回期望的结果);返回大海捞针字符串中针线串起始处的偏移量,或者返回boolean值(如果找不到针)。由于0是有效的偏移量,而0是“假”,

  • 问题内容: 仅使用一个参数作为要检查的子字符串,如何检查多个子字符串而不重复使用? 例如。 问题答案: 您可以使用可用于多个子字符串的函数编写自己的实用程序函数。 以下是在完全/部分匹配以及匹配总数的情况下返回布尔值(/ )的示例: 输出: 这是实时示例:https : //play.golang.org/p/Xka0KfBrRD

  • 类别3:如果字符串只包含字母而不包含其他符号(例如ABCabc),则函数应返回3。 类别4:如果字符串只包含数字(例如12345),则函数应返回4。 类别5:如果字符串同时包含字母和数字,但没有其他符号(例如Hello123),则函数应该返回5。