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

Python使用正则查找DataFrame中含连续重复字符字段的问题

问题根因
  • str.findall()的作用是返回所有匹配结果组成的列表,无匹配时返回空列表,本身不会输出布尔值,不符合你生成TRUE/FALSE列的需求
  • 你写的正则没有加原始字符串前缀r,Python字符串中的反斜杠会被识别为转义符,导致正则匹配逻辑失效,最终返回空结果
正确实现代码

直接使用str.contains()方法判断是否存在匹配即可,正则可以简化为匹配连续两个相同字符的r'(\w)\1':

df['repeat'] = df['Name'].str.contains(r'(\w)\1', na=False)

参数na=False可将空值的匹配结果默认设为FALSE,避免生成NaN值,不需要可删除。

可选优化项
  • 如果你需要仅匹配英文字母(默认\w会匹配数字、下划线),可以将正则调整为r'([a-zA-Z])\1'
  • 如果你需要忽略大小写匹配(比如Aa也判定为连续重复),可以添加case=False参数:
df['repeat'] = df['Name'].str.contains(r'([a-zA-Z])\1', na=False, case=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 02:39:02