【发布时间】:2021-12-20 04:27:34
【问题描述】:
目标:将que_text 列中的值替换为 re.search 模式的匹配项。否则None
问题:尽管正则表达式模式经过全面测试,但在 que_text_new 列中仅接收 None 值!
def override(s):
x = re.search(r'(an|frage(\s+ich)?)\s+d(i|ı)e\s+Staatsreg(i|ı)erung(.*)(Dresden(\.|,|\s+)?)?', str(s), flags = re.DOTALL | re.MULTILINE))
if x :
return x.group(5)
return None
df2['que_text_new'] = df2['que_text'].apply(override)
我做错了什么?删除 return None 没有帮助。我假设我的函数中一定存在一些结构性错误。
【问题讨论】:
-
能否请您发布您的数据框样本?没有它,几乎不可能提供帮助。
-
s在哪里使用了override函数? -
不知道,我认为
s应该是任意占位符,就像在循环中一样?! -
不,您需要一个输入字符串作为
re.search方法的第二个参数。在编辑问题之前,您有str(s)(这就是我在回答中提到它的原因)。