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

如何在pandas中统计字符串列中独立单词you/your的出现频次,排除部分匹配?

问题原因
  • 现有正则手动穷举大小写、前后空格/标点的方式逻辑冗余,漏了行首、行尾的单词匹配场景,也没法覆盖所有可能的单词分隔情况,同时还存在误匹配包含目标子串单词的问题
  • 没有使用正则内置的单词边界规则和不区分大小写参数,导致统计结果不符合预期
修正方案

用正则的单词边界符\b匹配独立单词,同时开启不区分大小写的匹配参数,修正后的代码如下:

import pandas as pd
import re

df1 = pd.DataFrame(['you youe', 'you You YOU', 'eyou Young'], columns=['words'])
# \b 匹配单词边界,re.IGNORECASE 表示不区分大小写
df1['counts'] = df1['words'].str.count(r'\b(you|your)\b', flags=re.IGNORECASE)
print(df1)
运行结果
words  counts
0     you youe       1
1  you You YOU       3
2   eyou Young       0
逻辑说明
  • \b是正则内置的单词边界标识符,只会匹配单词和非单词字符的交界位置,天然避免了eyou、youe这类部分匹配的场景
  • flags=re.IGNORECASE开启不区分大小写匹配,不需要手动穷举所有大小写组合的目标单词,大幅简化正则逻辑
  • 括号内的you|your同时匹配两个目标单词,逻辑清晰不易出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:36:03