python - 在数据框中使用 str.contains 和正则表达式搜索单词很慢,有没有更好的方法?
问题描述
我有一个超过 200 万行的数据库。我正在尝试使用正则表达式查找包含两个单词的行,例如:
df1 = df[df['my_column'].str.contains(r'(?=.*first_word)(?=.*second_word)')]
但是,当尝试在 jupyter notebook 中处理这个问题时,返回这些行需要一分钟多的时间,或者它会使内核崩溃,我必须再试一次。
有没有更有效的方法来返回包含两个单词的数据框中的行?
解决方案
利用
df['my_column'].apply(lambda x: all(l in x for l in ['first_word', 'second_word']) )
它将确保列表中的单词都出现在my_column
列中,而没有尴尬的正则表达式。
推荐阅读
- sorting - 在快速排序程序集中执行递归调用的问题
- c# - C# - 如何在线临时流式传输文件以访问 URL
- php - 使用 Timber for WordPress 时,如何从帖子类型声明 PHP var 以进行 for 循环?
- html - 将鼠标悬停在文本上时如何防止文本更改?
- node.js - fs.createReadStream 未定义
- c - 如何在 Windows 和 macOS 上检测 C 中的 USB 串行端口连接?
- angular - 我可以为每个用户从 localStorage 中删除一个项目吗?
- random - 类似 MWC 的随机生成器的维度是多少?
- java - 如何为单个 Spring Boot 应用程序创建两个日志文件
- python - 时间戳到日期时间的转换结果在 python 中为 2082