有一个带有 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))
