[英]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
,它是它们的内联修饰符版本。 .*?
匹配任何零个或多个字符,尽可能少。
如果Original
和Subject
需要作为包含文字文本的变量传递,请不要忘记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.