Pandas如何删除DataFrame指定列中以特定字符开头的字符串前缀
问题修正与实现方案
原代码失效原因
- 列名使用错误:你的DataFrame目标列是
Sentences,不是代码中写的Names - 字符串切片逻辑错误:
df.Names[0:3]是取列的前3行数据,不是取每行字符串的前3个字符,pandas序列处理字符串需要使用.str访问器 - 赋值逻辑错误:右侧的
row['Names'][3:]未定义row变量,无法直接调用
正确实现方法
方法1:通用正则替换(推荐)
一次性匹配所有开头的「小写字母+) +空格」格式的前缀,自动移除,支持a-z任意前缀:
df['Sentences'] = df['Sentences'].str.replace(r'^[a-z]\) ', '', regex=True)
方法2:按前缀判断后截取(贴合你的原始思路)
# 构造匹配a) 、b) 前缀的筛选条件 mask = (df['Sentences'].str[:3] == 'a) ') | (df['Sentences'].str[:3] == 'b) ') # 对匹配到的行截取从第3位开始的内容 df.loc[mask, 'Sentences'] = df.loc[mask, 'Sentences'].str[3:]
测试效果
运行代码后输出结果如下:
Sentences 0 Sentence 1 1 Sentence 2
内容的提问来源于stack exchange,提问作者jos97
相关产品推荐
相关产品推荐

