[英]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.