繁体   English   中英

如何通过 python 删除 dataframe 列中两个特定单词之间的文本

[英]How to remove text between two specific words in a dataframe column by python

我正在清理的列中有文本,我需要删除“原始”和“主题”这两个词之间出现在列中的所有单词,这只是一些行。

我目前正在尝试

   a = df['textcol']
   import re
   df['textcol'] =re.sub('Original.*?Subject','',str(a), flags=re.DOTALL)

这个 function 使每根丝束中的每根绳子都与第一行完全相同,而不是单独查看每一行并进行更改

您需要直接使用Series.str.replace

df['textcol'] = df['textcol'].str.replace(r'(?s)Original.*?Subject', '', regex=True)

这里, (?s)代表re.DOTALL / re.S为了不必导入re ,它是它们的内联修饰符版本。 .*? 匹配任何零个或多个字符,尽可能少。

如果OriginalSubject需要作为包含文字文本的变量传递,请不要忘记re.escape

import re
# ... etc. ...
start = "Original"
end = "Subject"
df['textcol'] = df['textcol'].str.replace(fr'(?s){re.escape(start)}.*?{re.escape(end)}', '', regex=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM