regex - 如何将 pandas.Series.str.contains 与 tqdm 进度图一起使用?
问题描述
dfA
我正在尝试根据来自另一个数据框 ( ) 的值向数据框 ( )添加一个新列dfB
:
s = dfA['value'].tolist()
dfB['value'] = dfB['text_bod'].str.contains('|'.join(s))
可以progress_map
用这个设置吗?
dfB['value] = 'dfB['text_bod].progress_map(func)'
或者还有其他方法可以实现 tqdm 吗?
使用 FlashText 的替代方法:
from flashtext import KeywordProcessor
s = dfA['value'].tolist()
processor = KeywordProcessor()
processor.add_keywords_from_list(s)
dfB['value'] = dfB['text_bod'].progress_map(lambda x: processor.extract_keywords(x))
解决方案
不知道一种str.contains
方法,但是您可以使用progress_map
执行完全相同操作的回调,但使用re.search
:
import re
dfB['value'] = dfB['text_bod'].progress_map(
lambda x: bool(re.search('|'.join(s), x))
)
作为一个函数,您可以使用
def extract(x, p):
m = p.search(x)
if m:
return m.groups(0)
return np.nan
p = re.compile('|'.join(s))
dfB['value'] = dfB['text_bod'].progress_map(lambda x: extract(x, p))
这应该让您比 lambda 具有更大的灵活性。
推荐阅读
- asp.net-core - .Net Core 服务器端模型验证通过不显眼的 ajax 表单
- php - 如何使用foreach从html标签中获取动态值并将其保存到jquery变量以供momentObj
- java - 我可以将一些数组作为字段放在 java 类中并使用本机方法访问它吗?
- reactjs - 未处理的拒绝(TypeError):无法读取未定义的属性“signUp”
- django - Django电子邮件模板中的图像未加载到电子邮件中
- ios - SwiftUI:更改视图并删除父级
- r - 用于从 PDF 中提取 P 值的正则表达式
- javascript - “没有验证码”消息。(此内容已被屏蔽。请联系网站所有者解决问题)
- javascript - js监听系统音频的方法
- javascript - 有什么方法可以抑制 React.FC 中的水合警告?