You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python移除DataFrame列中两个指定单词之间的文本

问题原因

你现有代码的问题在于str(a)是将整个df['textcol'] Series对象整体转为了字符串格式(就是你直接print这个列时看到的包含索引、多行行预览的完整字符串),re.sub处理的是这一整个长字符串,最终得到的单个字符串被广播赋值到列的所有行,才会出现所有行内容一致的问题。

正确解法

优先用pandas原生的字符串正则替换方法,不需要手动逐行处理,且会自动跳过不匹配的行,保留原内容:

import re
df['textcol'] = df['textcol'].str.replace(r'Original.*?Subject', '', regex=True, flags=re.DOTALL)

如果数据量较小,也可以用apply逐行调用re.sub实现相同效果,还可以额外兼容空值等异常场景:

import re

def clean_row_text(text):
    # 非字符串内容直接返回,避免正则处理报错
    if not isinstance(text, str):
        return text
    return re.sub(r'Original.*?Subject', '', text, flags=re.DOTALL)

df['textcol'] = df['textcol'].apply(clean_row_text)

内容的提问来源于stack exchange,提问作者Arica Christensen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:39:05