Skip to main content
 首页 » 编程设计

python之在 Python 中搜索 Pandas Dataframe

2025年05月04日24mq0036

有一个带有 ngram 意大利语文本的数据框。看起来像这样:

    Name 
0   accensione del drive ribobinatrice ho 
1   actions urgente proporre al cliente 
2   al cliente upgrade del drive 
3   al drive con una smontata 
4   causa di un problema di 

我想搜索词组 'cliente problema'

按照我的逻辑,它应该给我行号 1,2 和 4。

使用 contains() 的方法,但它返回空系列:

Term = 'cliente problema' 
 
x_word = df_pentagrams.Name[df_pentagrams.Name.str.contains(Term)] 

如何在 Pandas 中解决这个问题?

谢谢!

请您参考如下方法:

您对 str.contains 行为的期望是错误的。当您在示例中使用 str.contains 时,您正在搜索显式字符串 cliente problema,但根据您的期望,您并不是在寻找 clienta problema 作为字符串,但对于 clienta 或 problema 出现在任何记录中。

与其将 clienta problema 视为字符串,不如将该字符串拆分为一个列表,然后在过滤 DataFrame 时使用该列表:

terms = term.split(' ') 
df_penagrams.Name[df_pentagrams.Name.str.contains('|'.join(terms))