Pandas中删除'AA'前的'/'失败,正则错误排查与解决
Pandas字符串替换:删除AA前的斜杠
问题场景
原始DataFrame代码如下:
import pandas as pd df = pd.DataFrame({'code': ['10SGD35/AA501/10SGD35/AA599/10SGD36/AA501/10SGD36AA599/10SGD37/AA501/10SGD37/AA527', '10SGD08/AA701/10SGD08/AA704/10SGD09/AA701/10SGD09AA708']})
需求是删除所有AA字符前的/,最终得到如下结果:
code 0 10SGD35AA501/10SGD35AA599/10SGD36AA501/10SGD36AA599/10SGD37AA501/10SGD37AA527 1 10SGD08AA701/10SGD08AA704/10SGD09AA701/10SGD09AA708
你的代码错误点
你写的代码存在两个问题:
- 正则表达式逻辑错误:
|(?=AA)中的|是正则的"或"运算符,实际效果是匹配空字符串或者AA前的位置,完全不符合你要匹配AA前的/的需求。 - 列名错误:原始DataFrame的目标列是
code,但你代码里写的是data,这会导致找不到对应列而报错。
正确实现方法
使用正则/(?=AA)精准匹配"紧跟AA的斜杠",然后替换为空字符串,同时使用正确的列名code:
df['code'] = df['code'].str.replace(r'/(?=AA)', '', regex=True)
运行后即可得到目标结果:
print(df) # 输出: # code # 0 10SGD35AA501/10SGD35AA599/10SGD36AA501/10SGD36AA599/10SGD37AA501/10SGD37AA527 # 1 10SGD08AA701/10SGD08AA704/10SGD09AA701/10SGD09AA708
内容的提问来源于stack exchange,提问作者irina_ikonn
相关产品推荐
相关产品推荐

