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

Python中如何为pandas的str.replace()设置多个待替换字符串条件

Pandas 多指定子串批量删除方案

pandas.Series.str.replace() 默认支持正则表达式匹配,你只需要将所有需要删除的子串按长串优先的顺序拼接为正则「或」模式,就可以实现一次性批量替换,避免短串先匹配导致长串删不干净的问题。

完整实现代码

import pandas as pd

# 示例DataFrame
df_1 = pd.DataFrame({'id': ['001', '002', '003', '004', '005', '006', '007', '008'],
                     'color_value': ['blue_test', 'red', 'yellow_tests', 'orange_orig',
                     'blue_new','red', 'blue_testing', 'orange']})

# 按长度从长到短定义要删除的子串,避免短串优先匹配导致残留
remove_terms = ['testing', 'tests', 'test', 'orig', 'new']
# 拼接为正则匹配模式
pattern = '|'.join(remove_terms)
# 批量将匹配到的子串替换为空
df_1['color_value'] = df_1['color_value'].str.replace(pattern, '', regex=True)

运行结果

执行后df_1['color_value']的输出如下:

0      blue_
1        red
2    yellow_
3    orange_
4      blue_
5        red
6      blue_
7     orange
Name: color_value, dtype: object

可选优化

如果需要同步删除子串前附带的下划线,避免输出残留_符号,可以调整正则模式为:

pattern = f"_({'|'.join(remove_terms)})"

替换后color_value列的结果会直接变成blue、yellow、orange这类干净值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:27:02