Python 在dataframe中使用str.contains和regex搜索单词很慢,有更好的方法吗?

Python 在dataframe中使用str.contains和regex搜索单词很慢,有更好的方法吗?,python,regex,pandas,dataframe,jupyter-notebook,Python,Regex,Pandas,Dataframe,Jupyter Notebook,我有一个超过200万行的数据库。我尝试使用regex查找同时包含两个单词的行,如: df1 = df[df['my_column'].str.contains(r'(?=.*first_word)(?=.*second_word)')] 然而,当试图在jupyter笔记本中处理这个问题时,返回这些行需要一分钟以上的时间,或者内核崩溃,我必须再试一次 是否有更有效的方法返回包含这两个单词的数据框中的行?使用 df['my_column'].应用(lambda x:all(l in x表示l in

我有一个超过200万行的数据库。我尝试使用regex查找同时包含两个单词的行,如:

df1 = df[df['my_column'].str.contains(r'(?=.*first_word)(?=.*second_word)')]
然而,当试图在jupyter笔记本中处理这个问题时,返回这些行需要一分钟以上的时间,或者内核崩溃,我必须再试一次

是否有更有效的方法返回包含这两个单词的数据框中的行?

使用

df['my_column'].应用(lambda x:all(l in x表示l in['first_word','second_word']))

它将确保列表中的单词都出现在
my_列
列中,而没有一个笨拙的正则表达式。

您可以查看Dask,以并行阅读感谢hkandpal,我不熟悉Dask。我会查出来的,也许你可以先试试更简单的正则表达式,也就是说,
包含(“第一个单词。*第二个单词”)
,它可能需要更少的时间来搜索它。你好,谢谢。我刚刚尝试了上面的查询,但它返回了0个结果,是否有我遗漏的内容?关于
df['my_column'].应用(lambda x:all(l in x表示l in['first_word','second_word'])