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

Pandas中如何移除DataFrame行字符串内的重复前缀片段

实现方法

针对3万行规模的DataFrame,用pandas内置的向量化字符串操作是效率最高的方案,全程不会改动非目标行的正常数据,处理耗时在毫秒级。

  • 核心逻辑:通过正则精准匹配字符串开头位置重复出现的WT_d8_r2_前缀,只把连续重复的双前缀替换为单前缀,其余位置、其余开头的字符串完全不受影响。
  • 注意不要用逐行apply的写法,向量化操作的性能比逐行Python循环高两个数量级,大数据量下差距更明显。

具体代码

假设你存储序列ID的列名为seq_id(如果是无表头读入的数据,第一列默认列名是0,替换成对应列名即可):

# 定向替换开头重复的前缀,^是正则开头锚定符,避免误替换字符串中间的偶然相同片段
df['seq_id'] = df['seq_id'].str.replace(
    pat=r'^WT_d8_r2_WT_d8_r2_',
    repl='WT_d8_r2_',
    regex=True
)

结果校验

处理完成后可以执行以下代码确认修正效果,返回剩余错误行数为0即代表全部处理完成:

remaining_error = df[df['seq_id'].str.startswith('WT_d8_r2_WT_d8_r2_')].shape[0]
print(f"剩余未修正错误行:{remaining_error}")

该写法鲁棒性足够:哪怕后续新增其他前缀的样本、或者WT组样本的序列中间偶然出现WT_d8_r2片段,都不会被误修改,完全匹配需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:18:13