【问题标题】:How to remove text between two specific words in a dataframe column by python如何通过python删除数据框列中两个特定单词之间的文本
【发布时间】:2021-11-27 01:04:10
【问题描述】:

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

我正在尝试

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

此函数使每个拖曳中的每个字符串都与第一行完全相同,而不是单独查看每一行并对其进行更改

【问题讨论】:

    标签: python regex string


    【解决方案1】:

    你需要直接使用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)
    

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2020-02-23
    • 2019-10-31
    • 2022-11-25
    • 2021-05-14
    • 2019-09-14
    相关资源
    最近更新 更多