当前位置: 首页 > 面试题库 >

在pandas中搜索多个字符串而无需预定义要使用的字符串数

胡泓
2023-03-14
问题内容

我想知道下面是否有更通用的方法?我想知道是否有一种方法可以创建st函数,以便我可以搜索未预定义数量的字符串?

因此,例如,能够创建通用的st函数,然后键入st(’Governor’,’Virginia’,’Google)

这是我当前的功能,但是它预定义了您可以使用的两个词。(df是pandas DataFrame)

def search(word1, word2, word3 df):
    """
    allows you to search an intersection of three terms
    """
    return df[df.Name.str.contains(word1) & df.Name.str.contains(word2) & df.Name.str.contains(word3)]

st('Governor', 'Virginia', newauthdf)

问题答案:

您可以使用np.logical_and.reduce

import pandas as pd
import numpy as np
def search(df, *words):  #1
    """
    Return a sub-DataFrame of those rows whose Name column match all the words.
    """
    return df[np.logical_and.reduce([df['Name'].str.contains(word) for word in words])]   # 2


df = pd.DataFrame({'Name':['Virginia Google Governor',
                           'Governor Virginia',
                           'Governor Virginia Google']})
print(search(df, 'Governor', 'Virginia', 'Google'))

版画

                       Name
0  Virginia Google Governor
2  Governor Virginia Google
  1. *def search(df, *words)允许search接受的位置参数的数量不受限制。它将收集所有参数(在第一个参数之后)并将其放在名为的列表中words
  2. np.logical_and.reduce([X,Y,Z])等效于X & Y & Z。但是,它允许您处理任意长的列表。


 类似资料:
  • 本文向大家介绍使用MySQL搜索字符串中的特定字符?,包括了使用MySQL搜索字符串中的特定字符?的使用技巧和注意事项,需要的朋友参考一下 为此,请使用REGEXP。例如,字符J,A,V和A。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是使用MySQL在字符串中搜索字符的查询- 这将产生以下输出-

  • 本文向大家介绍在Java中搜索字符串中的字符。,包括了在Java中搜索字符串中的字符。的使用技巧和注意事项,需要的朋友参考一下 您可以使用String类的方法在字符串中搜索特定字母。此方法返回字符串中单词的位置索引(如果找到)。否则返回-1。 示例 输出结果

  • 我希望typeahead.js在如何匹配项方面表现得像jqueryui autocomplete。使用jqueryui autocomplete可以在文本项中进行搜索。在typeahead中,它仅从字符串的开头开始。 自动完成示例:http://goo.gl/O43afF 提前键入示例:http://twitter.github.io/typeahead.js/examples/ 使用autoco

  • 我有一个包含以下两个字段的Lucene 3.6.0索引(每个字段下面都有示例数据): 字段由多个代码字符串组成,例如“CHP-13724”或“RPS-204979”。 所以:在字段中,由于某种原因,它无法找到空格分隔的字符串,除非它是第一个字符串,并且在查询中使用了通配符,但是在company字段中,无论字符串出现在哪里,并且不使用通配符,它都可以找到。 编辑:字段使用not_analysis进行

  • 问题内容: 我发现 find_in_set 仅按单个字符串搜索: 在上面的示例中,“ a”是唯一用于搜索的字符串。 有什么方法可以使用find_in_set类型的功能并通过多个字符串进行搜索,例如: 在上面的示例中,我想通过三个字符串’a,b,c’进行搜索。 我看到的一种方法是使用 OR 除此之外,还有其他方法吗? 问题答案: 没有本机函数可以执行此操作,但是您可以使用以下技巧来实现目标

  • 问题内容: 我正在使用BeautifulSoup在特定页面上寻找用户输入的字符串。例如,我想查看字符串“ Python”是否位于页面上:http : //python.org 当我使用时: find_string返回 但是当我使用: find_string返回预期 这两个语句之间有什么区别,使得当要搜索的单词实例不止一个时,第二条语句可以工作 问题答案: 以下行正在寻找 确切的 Navigable