Python Pandas如何仅删除后接空格或位于字符串末尾的指定子串
解决方案
首先你需要修正两个核心问题:
- 原正则的转义错误:你写的
'\tree\s'中\t会被Python识别为制表符,实际无法匹配目标字符串里的tree,正则内容需要加r前缀声明为原始字符串 - 补充字符串结尾匹配逻辑:用正则非捕获组
(?:\s|$)同时匹配「tree后接空格」和「tree位于字符串末尾」两种场景
修改后的代码如下:
# 多个待删除词汇可以按相同格式往列表里加 remove_list = [r'tree(?:\s|$)'] df['column'] = df['column'].str.replace('|'.join(remove_list), '', regex=True).str.strip()
效果验证
修改后可以完全覆盖你的需求:
- 输入
a tree house→ 输出a house - 输入
i love tree→ 输出i love - 输入
treehouse is fun→ 无修改,不会误删单词内部的tree - 输入
walk on backstreet→ 无修改,不会误删单词内部的tree
内容的提问来源于stack exchange,提问作者sudden_clarity_clarence
相关产品推荐
相关产品推荐

