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

Pandas 2.2.1移除字符串列单个字符失败问题求助

解决Pandas移除字符串列中单个字符的问题

原代码问题分析

你写的正则r'\b\w\b'无法匹配字符串开头或结尾的单个字符(比如开头的X和结尾的X)——因为\b是单词边界,字符串起始/结束位置的单个字符无法满足“左右都是单词边界”的条件,导致这些字符没被替换,最终输入输出一致。

解决方案

方案一:修正正则表达式

调整正则,匹配所有位置的单个字符(包括开头、中间、结尾),再清理多余空格:

import pandas as pd

df = pd.DataFrame(data=['X ABCD X X WEB X'], columns=['c1'])
print(df, '\n')
# 匹配单个字符,覆盖开头、中间、结尾场景
df.c1 = df.c1.str.replace(r'(^|\s)\w($|\s)', ' ', regex=True).str.strip().str.replace(r'\s+', ' ')
print(df)

方案二:提取长单词拼接(更直观)

直接提取长度≥2的单词,再用空格拼接,完全贴合需求逻辑:

import pandas as pd

df = pd.DataFrame(data=['X ABCD X X WEB X'], columns=['c1'])
print(df, '\n')
# 抓取所有长度≥2的单词,再连接成字符串
df.c1 = df.c1.str.findall(r'\w{2,}').str.join(' ')
print(df)

两种方案运行后都会输出:

c1
0  ABCD WEB

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:50:11